@sk8metal/michi-cli 0.0.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.
- package/LICENSE +22 -0
- package/README.md +465 -0
- package/dist/scripts/config/config-schema.d.ts +707 -0
- package/dist/scripts/config/config-schema.d.ts.map +1 -0
- package/dist/scripts/config/config-schema.js +100 -0
- package/dist/scripts/config/config-schema.js.map +1 -0
- package/dist/scripts/config-interactive.d.ts +10 -0
- package/dist/scripts/config-interactive.d.ts.map +1 -0
- package/dist/scripts/config-interactive.js +357 -0
- package/dist/scripts/config-interactive.js.map +1 -0
- package/dist/scripts/confluence-sync.d.ts +54 -0
- package/dist/scripts/confluence-sync.d.ts.map +1 -0
- package/dist/scripts/confluence-sync.js +407 -0
- package/dist/scripts/confluence-sync.js.map +1 -0
- package/dist/scripts/create-project.d.ts +12 -0
- package/dist/scripts/create-project.d.ts.map +1 -0
- package/dist/scripts/create-project.js +244 -0
- package/dist/scripts/create-project.js.map +1 -0
- package/dist/scripts/jira-sync.d.ts +39 -0
- package/dist/scripts/jira-sync.d.ts.map +1 -0
- package/dist/scripts/jira-sync.js +549 -0
- package/dist/scripts/jira-sync.js.map +1 -0
- package/dist/scripts/list-projects.d.ts +7 -0
- package/dist/scripts/list-projects.d.ts.map +1 -0
- package/dist/scripts/list-projects.js +61 -0
- package/dist/scripts/list-projects.js.map +1 -0
- package/dist/scripts/markdown-to-confluence.d.ts +19 -0
- package/dist/scripts/markdown-to-confluence.d.ts.map +1 -0
- package/dist/scripts/markdown-to-confluence.js +121 -0
- package/dist/scripts/markdown-to-confluence.js.map +1 -0
- package/dist/scripts/multi-project-estimate.d.ts +27 -0
- package/dist/scripts/multi-project-estimate.d.ts.map +1 -0
- package/dist/scripts/multi-project-estimate.js +202 -0
- package/dist/scripts/multi-project-estimate.js.map +1 -0
- package/dist/scripts/phase-runner.d.ts +19 -0
- package/dist/scripts/phase-runner.d.ts.map +1 -0
- package/dist/scripts/phase-runner.js +260 -0
- package/dist/scripts/phase-runner.js.map +1 -0
- package/dist/scripts/pr-automation.d.ts +12 -0
- package/dist/scripts/pr-automation.d.ts.map +1 -0
- package/dist/scripts/pr-automation.js +45 -0
- package/dist/scripts/pr-automation.js.map +1 -0
- package/dist/scripts/pre-flight-check.d.ts +15 -0
- package/dist/scripts/pre-flight-check.d.ts.map +1 -0
- package/dist/scripts/pre-flight-check.js +244 -0
- package/dist/scripts/pre-flight-check.js.map +1 -0
- package/dist/scripts/resource-dashboard.d.ts +7 -0
- package/dist/scripts/resource-dashboard.d.ts.map +1 -0
- package/dist/scripts/resource-dashboard.js +100 -0
- package/dist/scripts/resource-dashboard.js.map +1 -0
- package/dist/scripts/setup-existing-project.d.ts +13 -0
- package/dist/scripts/setup-existing-project.d.ts.map +1 -0
- package/dist/scripts/setup-existing-project.js +334 -0
- package/dist/scripts/setup-existing-project.js.map +1 -0
- package/dist/scripts/utils/config-loader.d.ts +20 -0
- package/dist/scripts/utils/config-loader.d.ts.map +1 -0
- package/dist/scripts/utils/config-loader.js +291 -0
- package/dist/scripts/utils/config-loader.js.map +1 -0
- package/dist/scripts/utils/config-validator.d.ts +34 -0
- package/dist/scripts/utils/config-validator.d.ts.map +1 -0
- package/dist/scripts/utils/config-validator.js +286 -0
- package/dist/scripts/utils/config-validator.js.map +1 -0
- package/dist/scripts/utils/confluence-hierarchy.d.ts +47 -0
- package/dist/scripts/utils/confluence-hierarchy.d.ts.map +1 -0
- package/dist/scripts/utils/confluence-hierarchy.js +516 -0
- package/dist/scripts/utils/confluence-hierarchy.js.map +1 -0
- package/dist/scripts/utils/feature-name-validator.d.ts +25 -0
- package/dist/scripts/utils/feature-name-validator.d.ts.map +1 -0
- package/dist/scripts/utils/feature-name-validator.js +113 -0
- package/dist/scripts/utils/feature-name-validator.js.map +1 -0
- package/dist/scripts/utils/project-meta.d.ts +23 -0
- package/dist/scripts/utils/project-meta.d.ts.map +1 -0
- package/dist/scripts/utils/project-meta.js +50 -0
- package/dist/scripts/utils/project-meta.js.map +1 -0
- package/dist/scripts/validate-phase.d.ts +17 -0
- package/dist/scripts/validate-phase.d.ts.map +1 -0
- package/dist/scripts/validate-phase.js +234 -0
- package/dist/scripts/validate-phase.js.map +1 -0
- package/dist/scripts/workflow-orchestrator.d.ts +35 -0
- package/dist/scripts/workflow-orchestrator.d.ts.map +1 -0
- package/dist/scripts/workflow-orchestrator.js +130 -0
- package/dist/scripts/workflow-orchestrator.js.map +1 -0
- package/dist/src/cli.d.ts +11 -0
- package/dist/src/cli.d.ts.map +1 -0
- package/dist/src/cli.js +229 -0
- package/dist/src/cli.js.map +1 -0
- package/docs/config-reference.md +666 -0
- package/docs/customization-guide.md +432 -0
- package/docs/multi-project.md +233 -0
- package/docs/new-project-setup.md +576 -0
- package/docs/phase-automation.md +361 -0
- package/docs/quick-reference.md +291 -0
- package/docs/setup.md +404 -0
- package/docs/tasks-template.md +550 -0
- package/docs/testing.md +202 -0
- package/docs/workflow.md +342 -0
- package/env.example +44 -0
- package/mcp.json.example +14 -0
- package/package.json +97 -0
package/docs/testing.md
ADDED
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
# テスト・検証ガイド
|
|
2
|
+
|
|
3
|
+
> **凡例について**: `<feature>` などの記号の意味は [README.md#凡例の記号説明](../README.md#凡例の記号説明) を参照してください。
|
|
4
|
+
|
|
5
|
+
## E2Eテストシナリオ
|
|
6
|
+
|
|
7
|
+
### シナリオ1: 単一機能の完全フロー
|
|
8
|
+
|
|
9
|
+
新機能「ユーザー認証」を要件定義からリリースまで実行:
|
|
10
|
+
|
|
11
|
+
#### Step 1: 要件定義
|
|
12
|
+
```bash
|
|
13
|
+
# 凡例
|
|
14
|
+
/kiro:spec-init <機能説明>
|
|
15
|
+
/kiro:spec-requirements <feature>
|
|
16
|
+
jj commit -m "docs: <feature> 要件定義"
|
|
17
|
+
jj git push
|
|
18
|
+
npm run confluence:sync <feature> requirements
|
|
19
|
+
|
|
20
|
+
# 具体例
|
|
21
|
+
/kiro:spec-init OAuth 2.0を使ったユーザー認証機能
|
|
22
|
+
/kiro:spec-requirements user-auth
|
|
23
|
+
jj commit -m "docs: ユーザー認証 要件定義"
|
|
24
|
+
jj git push
|
|
25
|
+
npm run confluence:sync user-auth requirements
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
**確認ポイント**:
|
|
29
|
+
- [ ] `.kiro/specs/user-auth/requirements.md` が生成された
|
|
30
|
+
- [ ] Confluenceページが作成された
|
|
31
|
+
- [ ] ラベル `project:michi, requirements, user-auth` が付与された
|
|
32
|
+
- [ ] 企画・部長にメンション通知が届いた
|
|
33
|
+
|
|
34
|
+
#### Step 2: 設計
|
|
35
|
+
```bash
|
|
36
|
+
# 凡例
|
|
37
|
+
/kiro:spec-design <feature>
|
|
38
|
+
jj commit -m "docs: <feature> 設計"
|
|
39
|
+
jj git push
|
|
40
|
+
npm run confluence:sync <feature> design
|
|
41
|
+
npm run excel:sync <feature>
|
|
42
|
+
|
|
43
|
+
# 具体例
|
|
44
|
+
/kiro:spec-design user-auth
|
|
45
|
+
jj commit -m "docs: ユーザー認証 設計"
|
|
46
|
+
jj git push
|
|
47
|
+
npm run confluence:sync user-auth design
|
|
48
|
+
npm run excel:sync user-auth
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**確認ポイント**:
|
|
52
|
+
- [ ] `.kiro/specs/user-auth/design.md` が生成された
|
|
53
|
+
- [ ] 見積もりセクションが含まれている
|
|
54
|
+
- [ ] Confluenceページが作成された(親: 要件定義)
|
|
55
|
+
- [ ] Excelファイルが出力された
|
|
56
|
+
|
|
57
|
+
#### Step 3: タスク分割
|
|
58
|
+
```bash
|
|
59
|
+
# 凡例
|
|
60
|
+
/kiro:spec-tasks <feature>
|
|
61
|
+
jj commit -m "docs: <feature> タスク分割"
|
|
62
|
+
jj git push
|
|
63
|
+
npm run jira:sync <feature>
|
|
64
|
+
|
|
65
|
+
# 具体例
|
|
66
|
+
/kiro:spec-tasks user-auth
|
|
67
|
+
jj commit -m "docs: ユーザー認証 タスク分割"
|
|
68
|
+
jj git push
|
|
69
|
+
npm run jira:sync user-auth
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**確認ポイント**:
|
|
73
|
+
- [ ] `.kiro/specs/user-auth/tasks.md` が生成された
|
|
74
|
+
- [ ] JIRA Epicが作成された
|
|
75
|
+
- [ ] JIRA Storyが作成された(複数)
|
|
76
|
+
- [ ] Epic-Storyリンクが設定された
|
|
77
|
+
|
|
78
|
+
#### Step 4: 実装
|
|
79
|
+
```
|
|
80
|
+
/kiro:spec-impl user-auth FE-1,BE-1
|
|
81
|
+
jj commit -m "feat: ユーザー認証実装 [MICHI-123]"
|
|
82
|
+
jj bookmark create michi/feature/user-auth -r '@-'
|
|
83
|
+
jj git push --bookmark michi/feature/user-auth --allow-new
|
|
84
|
+
npm run github:create-pr michi/feature/user-auth
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**確認ポイント**:
|
|
88
|
+
- [ ] テストが先に書かれた(TDD)
|
|
89
|
+
- [ ] コードが実装された
|
|
90
|
+
- [ ] PRが作成された
|
|
91
|
+
- [ ] JIRA ステータスが "In Review" に更新された
|
|
92
|
+
|
|
93
|
+
### シナリオ2: マルチプロジェクト横断テスト
|
|
94
|
+
|
|
95
|
+
3つのプロジェクトで同時に要件定義を実施:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
# プロジェクトA
|
|
99
|
+
cd customer-a-service-1
|
|
100
|
+
/kiro:spec-requirements payment-feature
|
|
101
|
+
npm run confluence:sync payment-feature
|
|
102
|
+
|
|
103
|
+
# プロジェクトB
|
|
104
|
+
cd ../customer-b-api
|
|
105
|
+
/kiro:spec-requirements user-api
|
|
106
|
+
npm run confluence:sync user-api
|
|
107
|
+
|
|
108
|
+
# プロジェクトC(Michi)
|
|
109
|
+
cd ../michi
|
|
110
|
+
/kiro:spec-requirements integration-hub
|
|
111
|
+
npm run confluence:sync integration-hub
|
|
112
|
+
|
|
113
|
+
# 横断確認
|
|
114
|
+
npm run project:list
|
|
115
|
+
npm run project:dashboard
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**確認ポイント**:
|
|
119
|
+
- [ ] 3つのプロジェクトすべてでページ作成成功
|
|
120
|
+
- [ ] Confluenceダッシュボードに3プロジェクト表示
|
|
121
|
+
- [ ] ラベルでフィルタリング可能
|
|
122
|
+
- [ ] JIRAダッシュボードに3プロジェクト表示
|
|
123
|
+
|
|
124
|
+
## チームフィードバック収集
|
|
125
|
+
|
|
126
|
+
### フィードバック項目
|
|
127
|
+
|
|
128
|
+
#### 使いやすさ
|
|
129
|
+
- [ ] Cursorコマンドは直感的か?
|
|
130
|
+
- [ ] ドキュメントは理解しやすいか?
|
|
131
|
+
- [ ] エラーメッセージは明確か?
|
|
132
|
+
|
|
133
|
+
#### 効率性
|
|
134
|
+
- [ ] 要件定義の時間短縮できたか?
|
|
135
|
+
- [ ] Confluence/JIRA連携は手間を減らしたか?
|
|
136
|
+
- [ ] 全体の開発スピードは向上したか?
|
|
137
|
+
|
|
138
|
+
#### 品質
|
|
139
|
+
- [ ] AIが生成する仕様書の品質は十分か?
|
|
140
|
+
- [ ] テンプレートは実務に適しているか?
|
|
141
|
+
- [ ] 見積もりの精度は妥当か?
|
|
142
|
+
|
|
143
|
+
### フィードバック方法
|
|
144
|
+
|
|
145
|
+
GitHub Issuesで収集:
|
|
146
|
+
```bash
|
|
147
|
+
gh issue create --title "フィードバック: <内容>" --body "<詳細>"
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
ラベル:
|
|
151
|
+
- `feedback:usability`: 使いやすさ
|
|
152
|
+
- `feedback:efficiency`: 効率性
|
|
153
|
+
- `feedback:quality`: 品質
|
|
154
|
+
|
|
155
|
+
## 継続的改善
|
|
156
|
+
|
|
157
|
+
### Week 1-2: パイロット運用
|
|
158
|
+
- 1プロジェクトで全フロー実行
|
|
159
|
+
- 問題点を記録
|
|
160
|
+
- フィードバック収集
|
|
161
|
+
|
|
162
|
+
### Week 3-4: 改善
|
|
163
|
+
- テンプレート調整
|
|
164
|
+
- スクリプト改善
|
|
165
|
+
- ドキュメント更新
|
|
166
|
+
|
|
167
|
+
### Week 5-6: 横展開
|
|
168
|
+
- 2-3プロジェクトに展開
|
|
169
|
+
- チーム全体でフィードバック
|
|
170
|
+
|
|
171
|
+
### Week 7-8: 最適化
|
|
172
|
+
- ベストプラクティス確立
|
|
173
|
+
- 自動化範囲の拡大
|
|
174
|
+
- ツールの安定化
|
|
175
|
+
|
|
176
|
+
## メトリクス
|
|
177
|
+
|
|
178
|
+
### 効率化指標
|
|
179
|
+
|
|
180
|
+
| 指標 | 導入前 | 導入後 | 改善率 |
|
|
181
|
+
|------|--------|--------|--------|
|
|
182
|
+
| 要件定義時間 | 3日 | 0.5日 | 83% |
|
|
183
|
+
| 設計時間 | 5日 | 1日 | 80% |
|
|
184
|
+
| タスク分割時間 | 2日 | 0.5日 | 75% |
|
|
185
|
+
| ドキュメント作成 | 2日 | 0.2日 | 90% |
|
|
186
|
+
|
|
187
|
+
### 品質指標
|
|
188
|
+
|
|
189
|
+
| 指標 | 目標値 | 測定方法 |
|
|
190
|
+
|------|--------|---------|
|
|
191
|
+
| 仕様書の完成度 | 90%以上 | レビュースコア |
|
|
192
|
+
| 見積もり精度 | ±20%以内 | 実績との比較 |
|
|
193
|
+
| テストカバレッジ | 95%以上 | 自動測定 |
|
|
194
|
+
|
|
195
|
+
## 次のステップ
|
|
196
|
+
|
|
197
|
+
1. パイロットプロジェクトでE2Eテスト実行
|
|
198
|
+
2. フィードバック収集
|
|
199
|
+
3. 改善実施
|
|
200
|
+
4. 他プロジェクトに横展開
|
|
201
|
+
5. ベストプラクティス確立
|
|
202
|
+
|
package/docs/workflow.md
ADDED
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
# AI開発ワークフローガイド
|
|
2
|
+
|
|
3
|
+
> **凡例について**: `<feature>` などの記号の意味は [README.md#凡例の記号説明](../README.md#凡例の記号説明) を参照してください。
|
|
4
|
+
|
|
5
|
+
## 概要
|
|
6
|
+
|
|
7
|
+
このガイドでは、Michiを使用したAI駆動開発フローの全体像を説明します。
|
|
8
|
+
|
|
9
|
+
## ワークフロー全体像
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
1. 要件定義 (/kiro:spec-requirements)
|
|
13
|
+
↓ GitHub → Confluence同期
|
|
14
|
+
↓ 企画・部長が承認
|
|
15
|
+
|
|
16
|
+
2. 設計 (/kiro:spec-design)
|
|
17
|
+
↓ GitHub → Confluence同期
|
|
18
|
+
↓ 見積もり生成 → Excel出力
|
|
19
|
+
↓ アーキテクト・部長が承認
|
|
20
|
+
|
|
21
|
+
3. タスク分割 (/kiro:spec-tasks)
|
|
22
|
+
↓ GitHub → JIRA連携
|
|
23
|
+
↓ Epic/Story/Subtask自動作成
|
|
24
|
+
|
|
25
|
+
4. 実装 (/kiro:spec-impl)
|
|
26
|
+
↓ TDD(テスト → コード → リファクタリング)
|
|
27
|
+
↓ GitHub PR作成
|
|
28
|
+
↓ JIRA ステータス更新
|
|
29
|
+
|
|
30
|
+
5. テスト
|
|
31
|
+
↓ テストレポート生成
|
|
32
|
+
↓ Confluence同期
|
|
33
|
+
|
|
34
|
+
6. リリース準備 (/kiro:release-prep)
|
|
35
|
+
↓ リリースノート生成
|
|
36
|
+
↓ JIRA Release作成
|
|
37
|
+
↓ GitHub Release作成
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## フェーズ別詳細
|
|
41
|
+
|
|
42
|
+
### Phase 1: 要件定義
|
|
43
|
+
|
|
44
|
+
#### Step 1: 仕様の初期化
|
|
45
|
+
|
|
46
|
+
Cursorで実行:
|
|
47
|
+
```bash
|
|
48
|
+
# 凡例
|
|
49
|
+
/kiro:spec-init <機能説明>
|
|
50
|
+
|
|
51
|
+
# 具体例
|
|
52
|
+
/kiro:spec-init ユーザー認証機能を実装したい。OAuth 2.0とJWTを使用。
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
AIが `.kiro/specs/<feature>/` ディレクトリを作成します。
|
|
56
|
+
|
|
57
|
+
#### Step 2: 要件定義の生成
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
# 凡例
|
|
61
|
+
/kiro:spec-requirements <feature>
|
|
62
|
+
|
|
63
|
+
# 具体例
|
|
64
|
+
/kiro:spec-requirements user-auth
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
AIが以下を生成:
|
|
68
|
+
- `.kiro/specs/<feature>/requirements.md`
|
|
69
|
+
- ビジネス要件、機能要件、非機能要件、リスク
|
|
70
|
+
|
|
71
|
+
#### Step 3: GitHubにコミット
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# 凡例
|
|
75
|
+
jj commit -m "docs: <feature> 要件定義追加"
|
|
76
|
+
jj git push
|
|
77
|
+
|
|
78
|
+
# 具体例
|
|
79
|
+
jj commit -m "docs: ユーザー認証 要件定義追加"
|
|
80
|
+
jj git push
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
#### Step 4: Confluenceに同期
|
|
84
|
+
|
|
85
|
+
Cursorで実行:
|
|
86
|
+
```bash
|
|
87
|
+
# 凡例
|
|
88
|
+
/kiro:confluence-sync <feature> requirements
|
|
89
|
+
|
|
90
|
+
# 具体例
|
|
91
|
+
/kiro:confluence-sync user-auth requirements
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
または:
|
|
95
|
+
```bash
|
|
96
|
+
# 凡例
|
|
97
|
+
npm run confluence:sync <feature> requirements
|
|
98
|
+
|
|
99
|
+
# 具体例
|
|
100
|
+
npm run confluence:sync user-auth requirements
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
AIが自動的に:
|
|
104
|
+
- Confluenceページ作成
|
|
105
|
+
- プロジェクト情報付与
|
|
106
|
+
- 企画・部長にメンション通知
|
|
107
|
+
|
|
108
|
+
#### Step 5: 承認待ち
|
|
109
|
+
|
|
110
|
+
企画・部長がConfluenceで:
|
|
111
|
+
- 要件をレビュー
|
|
112
|
+
- コメントでフィードバック
|
|
113
|
+
- Page Propertiesで承認
|
|
114
|
+
|
|
115
|
+
### Phase 2: 設計
|
|
116
|
+
|
|
117
|
+
#### Step 1: 設計書の生成
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
# 凡例
|
|
121
|
+
/kiro:spec-design <feature>
|
|
122
|
+
|
|
123
|
+
# 具体例
|
|
124
|
+
/kiro:spec-design user-auth
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
AIが以下を生成:
|
|
128
|
+
- アーキテクチャ図
|
|
129
|
+
- API設計
|
|
130
|
+
- データベース設計
|
|
131
|
+
- 見積もり
|
|
132
|
+
|
|
133
|
+
#### Step 2: GitHubにコミット
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
# 凡例
|
|
137
|
+
jj commit -m "docs: <feature> 設計追加"
|
|
138
|
+
jj git push
|
|
139
|
+
|
|
140
|
+
# 具体例
|
|
141
|
+
jj commit -m "docs: ユーザー認証 設計追加"
|
|
142
|
+
jj git push
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
#### Step 3: Confluenceに同期 + 見積もり出力
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
# 凡例
|
|
149
|
+
npm run confluence:sync <feature> design
|
|
150
|
+
npm run excel:sync <feature>
|
|
151
|
+
|
|
152
|
+
# 具体例
|
|
153
|
+
npm run confluence:sync user-auth design
|
|
154
|
+
npm run excel:sync user-auth
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
見積もりExcelファイルが `estimates/<feature>-estimate.xlsx` に出力されます。
|
|
158
|
+
|
|
159
|
+
#### Step 4: 承認待ち
|
|
160
|
+
|
|
161
|
+
アーキテクト・部長がレビュー・承認
|
|
162
|
+
|
|
163
|
+
### Phase 3: タスク分割
|
|
164
|
+
|
|
165
|
+
#### Step 1: タスク生成
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
# 凡例
|
|
169
|
+
/kiro:spec-tasks <feature>
|
|
170
|
+
|
|
171
|
+
# 具体例
|
|
172
|
+
/kiro:spec-tasks user-auth
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
AIが実装タスクをストーリーに分割します。
|
|
176
|
+
|
|
177
|
+
#### Step 2: GitHubにコミット
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
# 凡例
|
|
181
|
+
jj commit -m "docs: <feature> タスク分割追加"
|
|
182
|
+
jj git push
|
|
183
|
+
|
|
184
|
+
# 具体例
|
|
185
|
+
jj commit -m "docs: ユーザー認証 タスク分割追加"
|
|
186
|
+
jj git push
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
#### Step 3: JIRAに同期
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
# 凡例
|
|
193
|
+
npm run jira:sync <feature>
|
|
194
|
+
|
|
195
|
+
# 具体例
|
|
196
|
+
npm run jira:sync user-auth
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
自動的に:
|
|
200
|
+
- Epic作成: `[<project-name>] <feature>`
|
|
201
|
+
- Story作成: 各実装タスク
|
|
202
|
+
- Subtask作成: テスト、レビュータスク
|
|
203
|
+
|
|
204
|
+
### Phase 4: 実装
|
|
205
|
+
|
|
206
|
+
#### Step 1: TDD実装
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
# 凡例
|
|
210
|
+
/kiro:spec-impl <feature> <tasks>
|
|
211
|
+
|
|
212
|
+
# 具体例
|
|
213
|
+
/kiro:spec-impl user-auth FE-1,BE-1
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
AIがTDD(テスト駆動開発)で実装:
|
|
217
|
+
1. テストを書く
|
|
218
|
+
2. コードを書く
|
|
219
|
+
3. リファクタリング
|
|
220
|
+
|
|
221
|
+
#### Step 2: コミット
|
|
222
|
+
|
|
223
|
+
```bash
|
|
224
|
+
# 凡例
|
|
225
|
+
jj commit -m "feat: <feature> 実装 [JIRA-XXX]"
|
|
226
|
+
jj bookmark create <project-id>/feature/<feature> -r '@-'
|
|
227
|
+
jj git push --bookmark <project-id>/feature/<feature> --allow-new
|
|
228
|
+
|
|
229
|
+
# 具体例
|
|
230
|
+
jj commit -m "feat: ユーザー認証実装 [MICHI-123]"
|
|
231
|
+
jj bookmark create michi/feature/user-auth -r '@-'
|
|
232
|
+
jj git push --bookmark michi/feature/user-auth --allow-new
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
#### Step 3: PR作成
|
|
236
|
+
|
|
237
|
+
```bash
|
|
238
|
+
# 凡例
|
|
239
|
+
npm run github:create-pr <project-id>/feature/<feature> "[JIRA-XXX] <タイトル>"
|
|
240
|
+
|
|
241
|
+
# 具体例
|
|
242
|
+
npm run github:create-pr michi/feature/user-auth "[MICHI-123] ユーザー認証実装"
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
または手動で:
|
|
246
|
+
```bash
|
|
247
|
+
# 凡例
|
|
248
|
+
gh pr create --head <project-id>/feature/<feature> --base main \
|
|
249
|
+
--title "[JIRA-XXX] <タイトル>" \
|
|
250
|
+
--body "<説明>"
|
|
251
|
+
|
|
252
|
+
# 具体例
|
|
253
|
+
gh pr create --head michi/feature/user-auth --base main \
|
|
254
|
+
--title "[MICHI-123] ユーザー認証実装" \
|
|
255
|
+
--body "実装内容..."
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### Phase 5-6: テスト・リリース
|
|
259
|
+
|
|
260
|
+
テストレポート生成とリリース準備は、同様のフローで実行します。
|
|
261
|
+
|
|
262
|
+
## 統合ワークフロー実行
|
|
263
|
+
|
|
264
|
+
すべてのフェーズを自動実行:
|
|
265
|
+
|
|
266
|
+
```bash
|
|
267
|
+
# 凡例
|
|
268
|
+
npm run workflow:run -- --feature <feature>
|
|
269
|
+
|
|
270
|
+
# 具体例
|
|
271
|
+
npm run workflow:run -- --feature user-auth
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
承認ゲートで一時停止し、承認後に次のフェーズに進みます。
|
|
275
|
+
|
|
276
|
+
### 承認ゲートの設定
|
|
277
|
+
|
|
278
|
+
ワークフロー実行時の承認ゲートで使用するロール名は、環境変数で設定できます。
|
|
279
|
+
|
|
280
|
+
#### 環境変数設定
|
|
281
|
+
|
|
282
|
+
`.env` ファイルに以下を追加:
|
|
283
|
+
|
|
284
|
+
```bash
|
|
285
|
+
# 要件定義フェーズの承認者
|
|
286
|
+
APPROVAL_GATES_REQUIREMENTS=pm,director
|
|
287
|
+
|
|
288
|
+
# 設計フェーズの承認者
|
|
289
|
+
APPROVAL_GATES_DESIGN=architect,director
|
|
290
|
+
|
|
291
|
+
# リリースフェーズの承認者
|
|
292
|
+
APPROVAL_GATES_RELEASE=sm,director
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
#### 設定例
|
|
296
|
+
|
|
297
|
+
**デフォルト(英語ロール名):**
|
|
298
|
+
```bash
|
|
299
|
+
APPROVAL_GATES_REQUIREMENTS=pm,director
|
|
300
|
+
APPROVAL_GATES_DESIGN=architect,director
|
|
301
|
+
APPROVAL_GATES_RELEASE=sm,director
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
**日本語ロール名:**
|
|
305
|
+
```bash
|
|
306
|
+
APPROVAL_GATES_REQUIREMENTS=企画,部長
|
|
307
|
+
APPROVAL_GATES_DESIGN=アーキテクト,部長
|
|
308
|
+
APPROVAL_GATES_RELEASE=SM,部長
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
**カスタムロール名:**
|
|
312
|
+
```bash
|
|
313
|
+
APPROVAL_GATES_REQUIREMENTS=product-manager,cto,legal
|
|
314
|
+
APPROVAL_GATES_DESIGN=tech-lead,architect,security
|
|
315
|
+
APPROVAL_GATES_RELEASE=release-manager,qa-lead,director
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
詳細は [セットアップガイド](./setup.md#4-3-ワークフロー承認ゲートの設定オプション) を参照してください。
|
|
319
|
+
|
|
320
|
+
## ベストプラクティス
|
|
321
|
+
|
|
322
|
+
1. **小さく始める**: 最初は1フェーズずつ手動実行
|
|
323
|
+
2. **承認を待つ**: 各フェーズで承認を取ってから次へ
|
|
324
|
+
3. **GitHubを真実の源に**: 編集は常にGitHubで
|
|
325
|
+
4. **定期的な同期**: GitHub更新後は必ずConfluence/JIRA同期
|
|
326
|
+
5. **プロジェクトメタデータの維持**: `.kiro/project.json` を最新に保つ
|
|
327
|
+
|
|
328
|
+
## トラブルシューティング
|
|
329
|
+
|
|
330
|
+
### Confluence同期エラー
|
|
331
|
+
- `.env` の認証情報を確認
|
|
332
|
+
- Confluenceスペースが存在するか確認
|
|
333
|
+
- Markdownファイルが存在するか確認
|
|
334
|
+
|
|
335
|
+
### JIRA同期エラー
|
|
336
|
+
- JIRAプロジェクトキーが正しいか確認
|
|
337
|
+
- Epic/Storyの作成権限があるか確認
|
|
338
|
+
|
|
339
|
+
### PR作成エラー
|
|
340
|
+
- GitHub認証を確認: `gh auth status`
|
|
341
|
+
- ブランチが存在するか確認: `jj bookmark list`
|
|
342
|
+
|
package/env.example
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Atlassian設定
|
|
2
|
+
ATLASSIAN_URL=https://your-domain.atlassian.net
|
|
3
|
+
ATLASSIAN_EMAIL=your-email@company.com
|
|
4
|
+
ATLASSIAN_API_TOKEN=your-atlassian-api-token-here
|
|
5
|
+
|
|
6
|
+
# GitHub設定
|
|
7
|
+
GITHUB_ORG=your-github-org
|
|
8
|
+
GITHUB_TOKEN=your-github-token-here
|
|
9
|
+
GITHUB_REPO=your-org/your-repo
|
|
10
|
+
|
|
11
|
+
# Confluence設定
|
|
12
|
+
CONFLUENCE_PRD_SPACE=PRD
|
|
13
|
+
CONFLUENCE_QA_SPACE=QA
|
|
14
|
+
CONFLUENCE_RELEASE_SPACE=RELEASE
|
|
15
|
+
|
|
16
|
+
# JIRA設定
|
|
17
|
+
JIRA_PROJECT_KEYS=PROJECT
|
|
18
|
+
|
|
19
|
+
# JIRA Issue Type IDs(JIRAインスタンス固有の値 - 必須)
|
|
20
|
+
# JIRA管理画面(Settings > Issues > Issue types)またはREST APIで確認してください
|
|
21
|
+
# REST API: GET /rest/api/3/issuetype で取得可能
|
|
22
|
+
JIRA_ISSUE_TYPE_STORY=10036
|
|
23
|
+
JIRA_ISSUE_TYPE_SUBTASK=10037
|
|
24
|
+
|
|
25
|
+
# レートリミット対策(オプション、デフォルト: 500ms)
|
|
26
|
+
ATLASSIAN_REQUEST_DELAY=500
|
|
27
|
+
|
|
28
|
+
# Story Pointsカスタムフィールド(JIRAプロジェクト固有)
|
|
29
|
+
# 環境変数 JIRA_STORY_POINTS_FIELD で設定可能(例: customfield_10016)
|
|
30
|
+
JIRA_STORY_POINTS_FIELD=customfield_10016
|
|
31
|
+
|
|
32
|
+
# Epic Linkカスタムフィールド(JIRAプロジェクト固有)
|
|
33
|
+
# 環境変数 JIRA_EPIC_LINK_FIELD で設定可能(例: customfield_10014)
|
|
34
|
+
JIRA_EPIC_LINK_FIELD=customfield_10014
|
|
35
|
+
|
|
36
|
+
# Slack通知(オプション)
|
|
37
|
+
SLACK_WEBHOOK_URL=your-slack-webhook-url-here
|
|
38
|
+
|
|
39
|
+
# ワークフロー承認ゲート(オプション)
|
|
40
|
+
# カンマ区切りでロール名を指定。未設定の場合はデフォルト値を使用
|
|
41
|
+
# デフォルト: requirements=pm,director, design=architect,director, release=sm,director
|
|
42
|
+
APPROVAL_GATES_REQUIREMENTS=pm,director
|
|
43
|
+
APPROVAL_GATES_DESIGN=architect,director
|
|
44
|
+
APPROVAL_GATES_RELEASE=sm,director
|
package/mcp.json.example
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mcpServers": {
|
|
3
|
+
"atlassian": {
|
|
4
|
+
"command": "npx",
|
|
5
|
+
"args": ["-y", "@atlassian/mcp-server-atlassian"],
|
|
6
|
+
"env": {
|
|
7
|
+
"ATLASSIAN_URL": "https://your-domain.atlassian.net",
|
|
8
|
+
"ATLASSIAN_EMAIL": "your-email@company.com",
|
|
9
|
+
"ATLASSIAN_API_TOKEN": "your-atlassian-api-token-here"
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
package/package.json
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@sk8metal/michi-cli",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Managed Intelligent Comprehensive Hub for Integration - AI-driven development workflow automation",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"publishConfig": {
|
|
8
|
+
"access": "public"
|
|
9
|
+
},
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "git+https://github.com/sk8metalme/michi.git"
|
|
13
|
+
},
|
|
14
|
+
"homepage": "https://github.com/sk8metalme/michi#readme",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/sk8metalme/michi/issues"
|
|
17
|
+
},
|
|
18
|
+
"keywords": [
|
|
19
|
+
"ai",
|
|
20
|
+
"development",
|
|
21
|
+
"workflow",
|
|
22
|
+
"automation",
|
|
23
|
+
"confluence",
|
|
24
|
+
"jira",
|
|
25
|
+
"atlassian",
|
|
26
|
+
"spec-driven-development",
|
|
27
|
+
"cc-sdd",
|
|
28
|
+
"cursor",
|
|
29
|
+
"github"
|
|
30
|
+
],
|
|
31
|
+
"bin": {
|
|
32
|
+
"michi": "dist/src/cli.js"
|
|
33
|
+
},
|
|
34
|
+
"files": [
|
|
35
|
+
"dist",
|
|
36
|
+
"docs",
|
|
37
|
+
"README.md",
|
|
38
|
+
"LICENSE",
|
|
39
|
+
"env.example",
|
|
40
|
+
"mcp.json.example"
|
|
41
|
+
],
|
|
42
|
+
"scripts": {
|
|
43
|
+
"build": "tsc",
|
|
44
|
+
"prepare": "npm run build",
|
|
45
|
+
"setup:env": "bash scripts/setup-env.sh",
|
|
46
|
+
"create-project": "tsx scripts/create-project.ts",
|
|
47
|
+
"setup-existing": "tsx scripts/setup-existing-project.ts",
|
|
48
|
+
"confluence:sync": "tsx scripts/confluence-sync.ts",
|
|
49
|
+
"jira:sync": "tsx scripts/jira-sync.ts",
|
|
50
|
+
"github:create-pr": "tsx scripts/pr-automation.ts",
|
|
51
|
+
"project:list": "tsx scripts/list-projects.ts",
|
|
52
|
+
"project:dashboard": "tsx scripts/resource-dashboard.ts",
|
|
53
|
+
"multi-estimate": "tsx scripts/multi-project-estimate.ts",
|
|
54
|
+
"markdown:convert": "tsx scripts/markdown-to-confluence.ts",
|
|
55
|
+
"michi": "tsx src/cli.ts",
|
|
56
|
+
"workflow:run": "tsx scripts/workflow-orchestrator.ts",
|
|
57
|
+
"validate:phase": "tsx scripts/validate-phase.ts",
|
|
58
|
+
"phase:run": "tsx scripts/phase-runner.ts",
|
|
59
|
+
"preflight": "tsx scripts/pre-flight-check.ts",
|
|
60
|
+
"config:interactive": "tsx scripts/config-interactive.ts",
|
|
61
|
+
"config:validate": "tsx scripts/utils/config-validator.ts",
|
|
62
|
+
"test": "vitest",
|
|
63
|
+
"test:run": "vitest --run",
|
|
64
|
+
"test:ui": "vitest --ui",
|
|
65
|
+
"lint": "eslint .",
|
|
66
|
+
"lint:fix": "eslint . --fix",
|
|
67
|
+
"type-check": "tsc --noEmit"
|
|
68
|
+
},
|
|
69
|
+
"dependencies": {
|
|
70
|
+
"@octokit/rest": "^20.0.2",
|
|
71
|
+
"axios": "^1.13.1",
|
|
72
|
+
"commander": "^14.0.2",
|
|
73
|
+
"dotenv": "^16.3.1",
|
|
74
|
+
"exceljs": "^4.4.0",
|
|
75
|
+
"googleapis": "^126.0.1",
|
|
76
|
+
"jira-client": "^8.2.2",
|
|
77
|
+
"markdown-it": "^14.0.0",
|
|
78
|
+
"turndown": "^7.1.2",
|
|
79
|
+
"zod": "^3.22.4"
|
|
80
|
+
},
|
|
81
|
+
"devDependencies": {
|
|
82
|
+
"@types/markdown-it": "^13.0.7",
|
|
83
|
+
"@types/node": "^20.10.6",
|
|
84
|
+
"@types/turndown": "^5.0.4",
|
|
85
|
+
"@typescript-eslint/eslint-plugin": "^6.17.0",
|
|
86
|
+
"@typescript-eslint/parser": "^6.17.0",
|
|
87
|
+
"eslint": "^8.56.0",
|
|
88
|
+
"prettier": "^3.1.1",
|
|
89
|
+
"tsx": "^4.7.0",
|
|
90
|
+
"typescript": "^5.3.3",
|
|
91
|
+
"vitest": "^1.1.1"
|
|
92
|
+
},
|
|
93
|
+
"engines": {
|
|
94
|
+
"node": ">=20.0.0",
|
|
95
|
+
"npm": ">=10.0.0"
|
|
96
|
+
}
|
|
97
|
+
}
|