@sk8metal/michi-cli 0.0.6 → 0.0.8
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/CHANGELOG.md +30 -0
- package/README.md +3 -2
- package/dist/scripts/__tests__/create-project.test.d.ts +2 -0
- package/dist/scripts/__tests__/create-project.test.d.ts.map +1 -0
- package/dist/scripts/__tests__/create-project.test.js +247 -0
- package/dist/scripts/__tests__/create-project.test.js.map +1 -0
- package/dist/scripts/__tests__/multi-project-estimate.test.d.ts +2 -0
- package/dist/scripts/__tests__/multi-project-estimate.test.d.ts.map +1 -0
- package/dist/scripts/__tests__/multi-project-estimate.test.js +119 -0
- package/dist/scripts/__tests__/multi-project-estimate.test.js.map +1 -0
- package/dist/scripts/__tests__/setup-existing-project.test.d.ts +2 -0
- package/dist/scripts/__tests__/setup-existing-project.test.d.ts.map +1 -0
- package/dist/scripts/__tests__/setup-existing-project.test.js +67 -0
- package/dist/scripts/__tests__/setup-existing-project.test.js.map +1 -0
- package/dist/scripts/__tests__/setup-interactive.test.d.ts +2 -0
- package/dist/scripts/__tests__/setup-interactive.test.d.ts.map +1 -0
- package/dist/scripts/__tests__/setup-interactive.test.js +160 -0
- package/dist/scripts/__tests__/setup-interactive.test.js.map +1 -0
- package/dist/scripts/config/default-config.json +57 -0
- package/dist/scripts/confluence-sync.d.ts +4 -0
- package/dist/scripts/confluence-sync.d.ts.map +1 -1
- package/dist/scripts/confluence-sync.js +12 -23
- package/dist/scripts/confluence-sync.js.map +1 -1
- package/dist/scripts/create-project.js +198 -137
- package/dist/scripts/create-project.js.map +1 -1
- package/dist/scripts/jira-sync.d.ts.map +1 -1
- package/dist/scripts/jira-sync.js +15 -0
- package/dist/scripts/jira-sync.js.map +1 -1
- package/dist/scripts/list-projects.d.ts.map +1 -1
- package/dist/scripts/list-projects.js +42 -15
- package/dist/scripts/list-projects.js.map +1 -1
- package/dist/scripts/multi-project-estimate.d.ts.map +1 -1
- package/dist/scripts/multi-project-estimate.js +56 -21
- package/dist/scripts/multi-project-estimate.js.map +1 -1
- package/dist/scripts/resource-dashboard.d.ts.map +1 -1
- package/dist/scripts/resource-dashboard.js +74 -17
- package/dist/scripts/resource-dashboard.js.map +1 -1
- package/dist/scripts/setup-existing-project.js +248 -214
- package/dist/scripts/setup-existing-project.js.map +1 -1
- package/dist/scripts/setup-interactive.d.ts +10 -0
- package/dist/scripts/setup-interactive.d.ts.map +1 -0
- package/dist/scripts/setup-interactive.js +413 -0
- package/dist/scripts/setup-interactive.js.map +1 -0
- package/dist/scripts/utils/__tests__/config-validator.test.js +5 -0
- package/dist/scripts/utils/__tests__/config-validator.test.js.map +1 -1
- package/dist/scripts/utils/__tests__/spec-updater.test.d.ts +5 -0
- package/dist/scripts/utils/__tests__/spec-updater.test.d.ts.map +1 -0
- package/dist/scripts/utils/__tests__/spec-updater.test.js +158 -0
- package/dist/scripts/utils/__tests__/spec-updater.test.js.map +1 -0
- package/dist/scripts/utils/confluence-hierarchy.d.ts +2 -1
- package/dist/scripts/utils/confluence-hierarchy.d.ts.map +1 -1
- package/dist/scripts/utils/confluence-hierarchy.js +5 -0
- package/dist/scripts/utils/confluence-hierarchy.js.map +1 -1
- package/dist/scripts/utils/project-finder.d.ts +30 -0
- package/dist/scripts/utils/project-finder.d.ts.map +1 -0
- package/dist/scripts/utils/project-finder.js +147 -0
- package/dist/scripts/utils/project-finder.js.map +1 -0
- package/dist/scripts/utils/spec-updater.d.ts +72 -0
- package/dist/scripts/utils/spec-updater.d.ts.map +1 -0
- package/dist/scripts/utils/spec-updater.js +141 -0
- package/dist/scripts/utils/spec-updater.js.map +1 -0
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +30 -7
- package/dist/src/cli.js.map +1 -1
- package/dist/vitest.config.d.ts.map +1 -1
- package/dist/vitest.config.js +8 -6
- package/dist/vitest.config.js.map +1 -1
- package/docs/README.md +2 -2
- package/docs/contributing/development.md +37 -0
- package/docs/getting-started/{new-project-setup.md → new-repository-setup.md} +66 -19
- package/docs/getting-started/setup.md +305 -182
- package/docs/guides/customization.md +1 -1
- package/docs/guides/multi-project.md +11 -8
- package/docs/reference/quick-reference.md +2 -2
- package/docs/testing-strategy.md +87 -0
- package/package.json +17 -5
- package/scripts/__tests__/create-project.test.ts +292 -0
- package/scripts/__tests__/multi-project-estimate.test.ts +145 -0
- package/scripts/__tests__/setup-existing-project.test.ts +79 -0
- package/scripts/__tests__/setup-interactive.test.ts +199 -0
- package/scripts/confluence-sync.ts +17 -29
- package/scripts/copy-static-assets.js +50 -0
- package/scripts/create-project.ts +219 -156
- package/scripts/jira-sync.ts +16 -1
- package/scripts/list-projects.ts +51 -24
- package/scripts/multi-project-estimate.ts +58 -22
- package/scripts/resource-dashboard.ts +91 -26
- package/scripts/setup-existing-project.ts +264 -223
- package/scripts/setup-existing.sh +29 -22
- package/scripts/setup-interactive.ts +565 -0
- package/scripts/utils/__tests__/config-validator.test.ts +6 -0
- package/scripts/utils/__tests__/spec-updater.test.ts +220 -0
- package/scripts/utils/confluence-hierarchy.ts +7 -1
- package/scripts/utils/project-finder.ts +184 -0
- package/scripts/utils/spec-updater.ts +212 -0
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Michi セットアップガイド
|
|
2
2
|
|
|
3
|
+
> **このガイドについて**: 既存のプロジェクトにMichiを導入する手順です。
|
|
4
|
+
> 新規プロジェクトを作成する場合は [新規リポジトリセットアップガイド](./new-project-setup.md) を参照してください。
|
|
5
|
+
> Michiの開発に貢献する場合は [開発環境セットアップガイド](../contributing/development.md) を参照してください。
|
|
6
|
+
|
|
3
7
|
## 前提条件
|
|
4
8
|
|
|
5
9
|
- Node.js 20.x以上
|
|
@@ -9,9 +13,7 @@
|
|
|
9
13
|
- GitHub CLI (gh) - PR作成時に使用
|
|
10
14
|
- **cc-sdd**: AI駆動開発ワークフローのコアフレームワーク
|
|
11
15
|
|
|
12
|
-
## 1
|
|
13
|
-
|
|
14
|
-
### 方法1: NPMパッケージとしてインストール(推奨)
|
|
16
|
+
## Step 1: Michi CLIのインストール
|
|
15
17
|
|
|
16
18
|
```bash
|
|
17
19
|
# グローバルインストール
|
|
@@ -24,35 +26,18 @@ michi --help
|
|
|
24
26
|
|
|
25
27
|
**注意**: 初回実行時は依存関係のダウンロードに時間がかかる場合があります。
|
|
26
28
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
Michiの開発に貢献したい場合や、最新の開発版を使用したい場合:
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
# リポジトリをクローン
|
|
33
|
-
git clone https://github.com/sk8metalme/michi
|
|
34
|
-
cd michi
|
|
29
|
+
> **開発者向け**: Michiの開発に貢献したい場合や、最新の開発版を使用したい場合は [開発環境セットアップガイド](../contributing/development.md) を参照してください。
|
|
35
30
|
|
|
36
|
-
|
|
37
|
-
npm install
|
|
31
|
+
## Step 2: cc-sddのインストール
|
|
38
32
|
|
|
39
|
-
|
|
40
|
-
npm run build
|
|
41
|
-
|
|
42
|
-
# グローバルコマンドとしてリンク
|
|
43
|
-
npm link
|
|
44
|
-
|
|
45
|
-
# 使用
|
|
46
|
-
michi --help
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
詳細は [開発環境セットアップガイド](../contributing/development.md)を参照してください。
|
|
50
|
-
|
|
51
|
-
## 2. cc-sddのインストール
|
|
33
|
+
**重要**: 作業するプロジェクトのルートディレクトリで実行してください。
|
|
52
34
|
|
|
53
35
|
cc-sddは、Michiの仕様駆動開発ワークフローのコアフレームワークです。
|
|
54
36
|
|
|
55
37
|
```bash
|
|
38
|
+
# 作業プロジェクトのルートディレクトリに移動
|
|
39
|
+
cd /path/to/your-project
|
|
40
|
+
|
|
56
41
|
# Cursor IDE を使用する場合
|
|
57
42
|
npx cc-sdd@latest --lang ja --cursor
|
|
58
43
|
|
|
@@ -79,15 +64,27 @@ npx cc-sdd@next --lang ja --windsurf
|
|
|
79
64
|
|
|
80
65
|
詳細: [cc-sdd公式ドキュメント](https://github.com/gotalab/cc-sdd/blob/main/tools/cc-sdd/README_ja.md)
|
|
81
66
|
|
|
82
|
-
## 3
|
|
67
|
+
## Step 3: 環境変数の設定
|
|
83
68
|
|
|
84
69
|
### 3-1. .env ファイルの作成
|
|
85
70
|
|
|
71
|
+
**重要**: 作業するプロジェクトのルートディレクトリで実行してください。
|
|
72
|
+
|
|
86
73
|
```bash
|
|
87
|
-
#
|
|
88
|
-
|
|
74
|
+
# 作業プロジェクトのルートディレクトリに移動
|
|
75
|
+
cd /path/to/your-project
|
|
76
|
+
|
|
77
|
+
# GitHubリポジトリから直接取得(推奨)
|
|
78
|
+
curl -o .env https://raw.githubusercontent.com/sk8metalme/michi/main/env.example
|
|
79
|
+
|
|
80
|
+
# または wget を使用
|
|
81
|
+
wget -O .env https://raw.githubusercontent.com/sk8metalme/michi/main/env.example
|
|
89
82
|
```
|
|
90
83
|
|
|
84
|
+
**注意**:
|
|
85
|
+
- `.env` ファイルは作業するプロジェクトのルートディレクトリに作成されます
|
|
86
|
+
- 別のディレクトリにいる場合は、まずプロジェクトルートに移動してください
|
|
87
|
+
|
|
91
88
|
### 3-2. 認証情報の設定
|
|
92
89
|
|
|
93
90
|
`.env` ファイルを編集して、実際の認証情報を設定します:
|
|
@@ -99,9 +96,10 @@ ATLASSIAN_EMAIL=your-email@company.com
|
|
|
99
96
|
ATLASSIAN_API_TOKEN=<ATLASSIANトークン>
|
|
100
97
|
|
|
101
98
|
# GitHub設定
|
|
102
|
-
GITHUB_ORG=
|
|
99
|
+
GITHUB_ORG=your-org
|
|
103
100
|
GITHUB_TOKEN=<GitHubトークン>
|
|
104
|
-
|
|
101
|
+
# 開発したいリポジトリ
|
|
102
|
+
GITHUB_REPO=your-org/user-auth
|
|
105
103
|
|
|
106
104
|
# Confluence設定
|
|
107
105
|
CONFLUENCE_PRD_SPACE=PRD
|
|
@@ -112,84 +110,108 @@ CONFLUENCE_RELEASE_SPACE=RELEASE
|
|
|
112
110
|
JIRA_PROJECT_KEYS=MICHI
|
|
113
111
|
|
|
114
112
|
# JIRA Issue Type IDs(JIRAインスタンス固有の値 - 必須)
|
|
115
|
-
# これらの値は各JIRAインスタンスで異なるため、必ず設定してください。
|
|
116
|
-
#
|
|
117
|
-
# 確認方法:
|
|
118
|
-
# 1. JIRA管理画面: Settings > Issues > Issue types で確認
|
|
119
|
-
# 2. REST API: GET https://your-domain.atlassian.net/rest/api/3/issuetype
|
|
120
|
-
# レスポンスから "Story" と "Subtask" の "id" フィールドを取得
|
|
121
|
-
# 例: {"id": "10036", "name": "Story", ...}
|
|
122
113
|
JIRA_ISSUE_TYPE_STORY=10036
|
|
123
114
|
JIRA_ISSUE_TYPE_SUBTASK=10037
|
|
124
115
|
|
|
125
116
|
# Slack通知(オプション)
|
|
126
117
|
SLACK_WEBHOOK_URL=<SlackWebhook URL>
|
|
127
|
-
|
|
128
|
-
# ワークフロー承認ゲート(オプション)
|
|
129
|
-
# カンマ区切りでロール名を指定。未設定の場合はデフォルト値を使用
|
|
130
|
-
APPROVAL_GATES_REQUIREMENTS=pm,director
|
|
131
|
-
APPROVAL_GATES_DESIGN=architect,director
|
|
132
|
-
APPROVAL_GATES_RELEASE=sm,director
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
### 3-3. ワークフロー承認ゲートの設定(オプション)
|
|
136
|
-
|
|
137
|
-
ワークフロー実行時(`michi workflow:run`)の承認ゲートで使用するロール名を設定できます。
|
|
138
|
-
|
|
139
|
-
#### 設定方法
|
|
140
|
-
|
|
141
|
-
`.env` ファイルに以下の環境変数を追加:
|
|
142
|
-
|
|
143
|
-
```bash
|
|
144
|
-
# 要件定義フェーズの承認者
|
|
145
|
-
APPROVAL_GATES_REQUIREMENTS=pm,director
|
|
146
|
-
|
|
147
|
-
# 設計フェーズの承認者
|
|
148
|
-
APPROVAL_GATES_DESIGN=architect,director
|
|
149
|
-
|
|
150
|
-
# リリースフェーズの承認者
|
|
151
|
-
APPROVAL_GATES_RELEASE=sm,director
|
|
152
118
|
```
|
|
153
119
|
|
|
154
|
-
####
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
-
|
|
182
|
-
-
|
|
183
|
-
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
-
|
|
188
|
-
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
120
|
+
#### 各設定値の確認方法
|
|
121
|
+
|
|
122
|
+
##### Atlassian設定
|
|
123
|
+
|
|
124
|
+
**`ATLASSIAN_URL`**
|
|
125
|
+
- **確認方法**: ブラウザでAtlassianにアクセスした際のURL
|
|
126
|
+
- **形式**: `https://your-domain.atlassian.net`
|
|
127
|
+
- **例**: `https://mycompany.atlassian.net`
|
|
128
|
+
|
|
129
|
+
**`ATLASSIAN_EMAIL`**
|
|
130
|
+
- **確認方法**: Atlassianにログインする際に使用するメールアドレス
|
|
131
|
+
- **形式**: メールアドレス形式
|
|
132
|
+
- **例**: `user@company.com`
|
|
133
|
+
|
|
134
|
+
**`ATLASSIAN_API_TOKEN`**
|
|
135
|
+
- **確認方法**: 3-3セクション「Atlassian API Token」を参照
|
|
136
|
+
|
|
137
|
+
##### GitHub設定
|
|
138
|
+
|
|
139
|
+
**`GITHUB_ORG`**
|
|
140
|
+
- **確認方法**: GitHubの組織名またはユーザー名
|
|
141
|
+
- **確認手順**:
|
|
142
|
+
1. GitHubにログイン
|
|
143
|
+
2. 組織のページにアクセス(例: `https://github.com/your-org`)
|
|
144
|
+
3. URLの `/your-org` 部分が組織名
|
|
145
|
+
- **例**: `sk8metal`、`mycompany`
|
|
146
|
+
- **使用機能**:
|
|
147
|
+
- プロジェクト一覧表示(`michi project:list`): 組織内の全リポジトリをスキャンしてプロジェクト情報を表示
|
|
148
|
+
- 複数プロジェクト見積もり集計(`michi multi-estimate`): 組織内の全リポジトリから `design.md` を取得して見積もり情報を集計
|
|
149
|
+
- プロジェクトリソースダッシュボード(`michi project:dashboard`): 組織内の全プロジェクト情報を集計してConfluenceダッシュボードを生成
|
|
150
|
+
- 新規プロジェクト作成(`michi create-project`): 新規リポジトリ作成時の組織名として使用
|
|
151
|
+
|
|
152
|
+
**`GITHUB_TOKEN`**
|
|
153
|
+
- **確認方法**: 3-3セクション「GitHub Token」を参照
|
|
154
|
+
- **使用機能**: すべてのGitHub連携機能で認証に使用(API呼び出し時の認証トークン)
|
|
155
|
+
|
|
156
|
+
**`GITHUB_REPO`**
|
|
157
|
+
- **確認方法**: GitHubリポジトリのURLから取得
|
|
158
|
+
- **確認手順**:
|
|
159
|
+
1. リポジトリのページにアクセス(例: `https://github.com/org/repo`)
|
|
160
|
+
2. URLの `/org/repo` 部分がリポジトリ名
|
|
161
|
+
- **形式**: `組織名/リポジトリ名`
|
|
162
|
+
- **例**: `sk8metalme/michi`
|
|
163
|
+
- **使用機能**:
|
|
164
|
+
- PR自動作成(`michi github:create-pr`): 指定されたリポジトリにPull Requestを作成(ワークフロー自動化で使用)
|
|
165
|
+
|
|
166
|
+
##### Confluence設定
|
|
167
|
+
|
|
168
|
+
**`CONFLUENCE_PRD_SPACE`、`CONFLUENCE_QA_SPACE`、`CONFLUENCE_RELEASE_SPACE`**
|
|
169
|
+
- **確認方法**: Confluenceスペースのキー(スペースキー)
|
|
170
|
+
- **確認手順**:
|
|
171
|
+
1. Confluenceにログイン
|
|
172
|
+
2. スペース一覧ページにアクセス: `https://your-domain.atlassian.net/wiki/spaces`
|
|
173
|
+
3. 各スペースのページにアクセス(例: `https://your-domain.atlassian.net/wiki/spaces/PRD`)
|
|
174
|
+
4. URLの `/spaces/PRD` 部分の `PRD` がスペースキー
|
|
175
|
+
- **形式**: 大文字の英数字(通常は3-10文字)
|
|
176
|
+
- **例**: `PRD`、`QA`、`RELEASE`、`ENG`
|
|
177
|
+
|
|
178
|
+
##### JIRA設定
|
|
179
|
+
|
|
180
|
+
**`JIRA_PROJECT_KEYS`**
|
|
181
|
+
- **確認方法**: JIRAプロジェクトのキー(プロジェクトキー)
|
|
182
|
+
- **確認手順**:
|
|
183
|
+
1. JIRAにログイン
|
|
184
|
+
2. プロジェクト一覧ページにアクセス: `https://your-domain.atlassian.net/jira/projects`
|
|
185
|
+
3. 各プロジェクトのページにアクセス(例: `https://your-domain.atlassian.net/jira/projects/MICHI`)
|
|
186
|
+
4. URLの `/projects/MICHI` 部分の `MICHI` がプロジェクトキー
|
|
187
|
+
5. 複数のプロジェクトを使用する場合は、カンマ区切りで指定(例: `MICHI,PRJA,PRJB`)
|
|
188
|
+
- **形式**: 大文字の英数字(通常は2-10文字)
|
|
189
|
+
- **例**: `MICHI`、`PROJ`、`DEV`
|
|
190
|
+
|
|
191
|
+
**`JIRA_ISSUE_TYPE_STORY`、`JIRA_ISSUE_TYPE_SUBTASK`**
|
|
192
|
+
- **確認方法**: JIRAインスタンス固有のIssue Type ID
|
|
193
|
+
- **確認手順**:
|
|
194
|
+
1. **JIRA管理画面から確認**:
|
|
195
|
+
- JIRAに管理者権限でログイン
|
|
196
|
+
- Settings(設定)> Issues(課題)> Issue types(課題タイプ)
|
|
197
|
+
- 「Story」と「Subtask」のIDを確認
|
|
198
|
+
2. **REST APIから確認**:
|
|
199
|
+
```bash
|
|
200
|
+
curl -u your-email@company.com:your-api-token \
|
|
201
|
+
https://your-domain.atlassian.net/rest/api/3/issuetype
|
|
202
|
+
```
|
|
203
|
+
レスポンスから "Story" と "Subtask" の "id" フィールドを取得
|
|
204
|
+
- 例: `{"id": "10036", "name": "Story", ...}`
|
|
205
|
+
- **形式**: 数値(通常は5桁)
|
|
206
|
+
- **例**: `10036`、`10037`
|
|
207
|
+
- **重要**: これらの値は各JIRAインスタンスで異なるため、必ず実際の値を設定してください
|
|
208
|
+
|
|
209
|
+
##### Slack設定(オプション)
|
|
210
|
+
|
|
211
|
+
**`SLACK_WEBHOOK_URL`**
|
|
212
|
+
- **確認方法**: 3-3セクション「Slack Webhook URL」を参照
|
|
213
|
+
|
|
214
|
+
### 3-3. 認証トークンの取得方法
|
|
193
215
|
|
|
194
216
|
#### Atlassian API Token
|
|
195
217
|
1. https://id.atlassian.com/manage-profile/security/api-tokens にアクセス
|
|
@@ -211,16 +233,21 @@ gh auth token
|
|
|
211
233
|
3. Incoming Webhooks を有効化
|
|
212
234
|
4. Webhook URL を生成して `.env` に設定
|
|
213
235
|
|
|
214
|
-
## 4
|
|
236
|
+
## Step 4: Atlassian MCP サーバーの設定
|
|
215
237
|
|
|
216
238
|
### 4-1. MCP設定ファイルの作成
|
|
217
239
|
|
|
218
|
-
|
|
240
|
+
ホームディレクトリに `~/.cursor/mcp.json` を作成:
|
|
219
241
|
|
|
220
242
|
```bash
|
|
221
|
-
#
|
|
243
|
+
# ホームディレクトリに .cursor ディレクトリを作成
|
|
222
244
|
mkdir -p ~/.cursor
|
|
223
|
-
|
|
245
|
+
|
|
246
|
+
# GitHubリポジトリから直接取得
|
|
247
|
+
curl -o ~/.cursor/mcp.json https://raw.githubusercontent.com/sk8metalme/michi/main/mcp.json.example
|
|
248
|
+
|
|
249
|
+
# または wget を使用
|
|
250
|
+
wget -O ~/.cursor/mcp.json https://raw.githubusercontent.com/sk8metalme/michi/main/mcp.json.example
|
|
224
251
|
```
|
|
225
252
|
|
|
226
253
|
### 4-2. 実際の認証情報に置き換え
|
|
@@ -243,96 +270,70 @@ cp mcp.json.example ~/.cursor/mcp.json
|
|
|
243
270
|
}
|
|
244
271
|
```
|
|
245
272
|
|
|
246
|
-
## 5
|
|
273
|
+
## Step 5: プロジェクトメタデータの設定
|
|
247
274
|
|
|
248
|
-
`.kiro/project.json`
|
|
275
|
+
`.kiro/project.json` は、プロジェクトのメタデータ(プロジェクトID、JIRAキー、Confluenceラベルなど)を管理するファイルです。
|
|
249
276
|
|
|
250
|
-
|
|
251
|
-
{
|
|
252
|
-
"projectId": "michi",
|
|
253
|
-
"projectName": "Michi - Managed Intelligent Comprehensive Hub for Integration",
|
|
254
|
-
"jiraProjectKey": "MICHI",
|
|
255
|
-
"confluenceLabels": ["project:michi", "service:hub"],
|
|
256
|
-
"status": "active",
|
|
257
|
-
"team": ["@developer1"],
|
|
258
|
-
"stakeholders": ["@pm", "@director"]
|
|
259
|
-
}
|
|
260
|
-
```
|
|
277
|
+
**重要**: すべてのプロジェクト(単一プロジェクトも含む)は`projects/{project-id}/`配下に配置されます。
|
|
261
278
|
|
|
262
|
-
|
|
279
|
+
> **補足**: 新規プロジェクトを作成する場合や、既存プロジェクトにMichiを自動導入する場合は [新規プロジェクトセットアップガイド](./new-project-setup.md) を参照してください。
|
|
263
280
|
|
|
264
|
-
`.
|
|
281
|
+
### 5-1. `.kiro/project.json` の作成
|
|
265
282
|
|
|
266
|
-
|
|
283
|
+
**重要**: 作業するプロジェクトのルートディレクトリで実行してください。
|
|
267
284
|
|
|
268
|
-
|
|
285
|
+
手動で `.kiro/project.json` を作成します:
|
|
269
286
|
|
|
270
|
-
|
|
287
|
+
```bash
|
|
288
|
+
# プロジェクトルートに .kiro ディレクトリを作成
|
|
289
|
+
mkdir -p .kiro
|
|
271
290
|
|
|
272
|
-
|
|
291
|
+
# project.json を作成
|
|
292
|
+
cat > .kiro/project.json << 'EOF'
|
|
273
293
|
{
|
|
274
|
-
"
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
"parentPageTitle": "[{projectName}] {featureName}"
|
|
284
|
-
}
|
|
285
|
-
},
|
|
286
|
-
"jira": {
|
|
287
|
-
"createEpic": true,
|
|
288
|
-
"storyCreationGranularity": "all",
|
|
289
|
-
"storyPoints": "auto",
|
|
290
|
-
"issueTypes": {
|
|
291
|
-
"story": "10036",
|
|
292
|
-
"subtask": "10037"
|
|
293
|
-
}
|
|
294
|
-
},
|
|
295
|
-
"workflow": {
|
|
296
|
-
"enabledPhases": ["requirements", "design", "tasks"],
|
|
297
|
-
"approvalGates": {
|
|
298
|
-
"requirements": ["leader", "director"],
|
|
299
|
-
"design": ["leader", "director"],
|
|
300
|
-
"release": ["service-manager", "director"]
|
|
301
|
-
}
|
|
302
|
-
}
|
|
294
|
+
"projectId": "your-project-id",
|
|
295
|
+
"projectName": "プロジェクト名",
|
|
296
|
+
"jiraProjectKey": "PROJ",
|
|
297
|
+
"confluenceLabels": ["project:your-project", "service:your-service"],
|
|
298
|
+
"status": "active",
|
|
299
|
+
"team": ["@developer1"],
|
|
300
|
+
"stakeholders": ["@pm", "@director"],
|
|
301
|
+
"repository": "https://github.com/your-org/your-repo",
|
|
302
|
+
"description": "プロジェクトの説明"
|
|
303
303
|
}
|
|
304
|
+
EOF
|
|
304
305
|
```
|
|
305
306
|
|
|
306
|
-
###
|
|
307
|
-
|
|
308
|
-
すべての設定値の詳細は [設定値リファレンス](../reference/config.md) を参照してください。
|
|
309
|
-
|
|
310
|
-
### 設定の優先順位
|
|
311
|
-
|
|
312
|
-
設定値は以下の優先順位で決定されます:
|
|
313
|
-
|
|
314
|
-
1. **`spec.json`**: 機能固有の設定(最優先)
|
|
315
|
-
2. **`.michi/config.json`**: プロジェクト固有の設定
|
|
316
|
-
3. **環境変数**: システム環境変数または`.env`ファイル
|
|
317
|
-
4. **デフォルト値**: スキーマで定義されたデフォルト値
|
|
318
|
-
|
|
319
|
-
### 設定のバリデーション
|
|
307
|
+
### 5-2. `.kiro/project.json` の確認・編集
|
|
320
308
|
|
|
321
|
-
|
|
309
|
+
既に `.kiro/project.json` が存在する場合、または作成後に必要に応じて編集してください:
|
|
322
310
|
|
|
323
|
-
```
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
311
|
+
```json
|
|
312
|
+
{
|
|
313
|
+
"projectId": "michi",
|
|
314
|
+
"projectName": "Michi - Managed Intelligent Comprehensive Hub for Integration",
|
|
315
|
+
"jiraProjectKey": "MICHI",
|
|
316
|
+
"confluenceLabels": ["project:michi", "service:hub"],
|
|
317
|
+
"status": "active",
|
|
318
|
+
"team": ["@developer1"],
|
|
319
|
+
"stakeholders": ["@pm", "@director"],
|
|
320
|
+
"repository": "https://github.com/your-org/your-repo",
|
|
321
|
+
"description": "プロジェクトの説明"
|
|
322
|
+
}
|
|
329
323
|
```
|
|
330
324
|
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
325
|
+
**各フィールドの説明**:
|
|
326
|
+
- `projectId`: プロジェクトの一意識別子(通常はリポジトリ名)
|
|
327
|
+
- `projectName`: プロジェクトの表示名
|
|
328
|
+
- `jiraProjectKey`: JIRAプロジェクトキー(`.env` の `JIRA_PROJECT_KEYS` と一致させる)
|
|
329
|
+
- `confluenceLabels`: Confluenceページに付与するラベル(配列形式)
|
|
330
|
+
- `status`: プロジェクトのステータス(`active`、`archived` など)
|
|
331
|
+
- `team`: チームメンバーのリスト(`@` プレフィックス付き)
|
|
332
|
+
- `stakeholders`: ステークホルダーのリスト(`@` プレフィックス付き)
|
|
333
|
+
- `repository`: GitHubリポジトリのURL(オプション)
|
|
334
|
+
- `description`: プロジェクトの説明(オプション)
|
|
334
335
|
|
|
335
|
-
## 6
|
|
336
|
+
## Step 6: Cursor IDE の設定
|
|
336
337
|
|
|
337
338
|
### 6-1. Cursor でプロジェクトを開く
|
|
338
339
|
|
|
@@ -353,7 +354,7 @@ Cursor のコマンドパネル(Cmd+Shift+P)で `/kiro:` と入力すると
|
|
|
353
354
|
|
|
354
355
|
凡例の詳細は [README.md#凡例の記号説明](../README.md#凡例の記号説明) を参照してください。
|
|
355
356
|
|
|
356
|
-
## 7
|
|
357
|
+
## Step 7: 動作確認
|
|
357
358
|
|
|
358
359
|
### 7-1. 基本的な動作確認
|
|
359
360
|
|
|
@@ -384,14 +385,136 @@ gh auth login
|
|
|
384
385
|
gh auth setup-git
|
|
385
386
|
```
|
|
386
387
|
|
|
387
|
-
##
|
|
388
|
+
## セットアップ完了
|
|
388
389
|
|
|
389
|
-
|
|
390
|
+
これでセットアップは完了です。次のステップ:
|
|
390
391
|
|
|
391
392
|
- [クイックスタート](./quick-start.md) - 5分で始める
|
|
392
393
|
- [ワークフローガイド](../guides/workflow.md) - AI開発フロー
|
|
393
394
|
- [マルチプロジェクト管理](../guides/multi-project.md) - 複数プロジェクト管理
|
|
394
395
|
|
|
396
|
+
## オプション設定
|
|
397
|
+
|
|
398
|
+
以下の設定は任意です。必要に応じて設定してください。
|
|
399
|
+
|
|
400
|
+
### ワークフロー承認ゲートの設定
|
|
401
|
+
|
|
402
|
+
ワークフロー実行時(`michi workflow:run`)の承認ゲートで使用するロール名を設定できます。
|
|
403
|
+
|
|
404
|
+
#### 設定方法
|
|
405
|
+
|
|
406
|
+
`.env` ファイルに以下の環境変数を追加:
|
|
407
|
+
|
|
408
|
+
```bash
|
|
409
|
+
# 要件定義フェーズの承認者
|
|
410
|
+
APPROVAL_GATES_REQUIREMENTS=pm,director
|
|
411
|
+
|
|
412
|
+
# 設計フェーズの承認者
|
|
413
|
+
APPROVAL_GATES_DESIGN=architect,director
|
|
414
|
+
|
|
415
|
+
# リリースフェーズの承認者
|
|
416
|
+
APPROVAL_GATES_RELEASE=sm,director
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
#### 設定例
|
|
420
|
+
|
|
421
|
+
**英語ロール名を使用する場合:**
|
|
422
|
+
```bash
|
|
423
|
+
APPROVAL_GATES_REQUIREMENTS=product-manager,cto,legal
|
|
424
|
+
APPROVAL_GATES_DESIGN=tech-lead,architect,security
|
|
425
|
+
APPROVAL_GATES_RELEASE=release-manager,qa-lead,director
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
**日本語ロール名を使用する場合:**
|
|
429
|
+
```bash
|
|
430
|
+
APPROVAL_GATES_REQUIREMENTS=企画,部長
|
|
431
|
+
APPROVAL_GATES_DESIGN=アーキテクト,部長
|
|
432
|
+
APPROVAL_GATES_RELEASE=SM,部長
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
**組織固有のロール名を使用する場合:**
|
|
436
|
+
```bash
|
|
437
|
+
APPROVAL_GATES_REQUIREMENTS=プロダクトマネージャー,CTO,法務
|
|
438
|
+
APPROVAL_GATES_DESIGN=テックリード,アーキテクト,セキュリティ
|
|
439
|
+
APPROVAL_GATES_RELEASE=リリースマネージャー,QAリード,部長
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
#### デフォルト値
|
|
443
|
+
|
|
444
|
+
環境変数が設定されていない場合、以下のデフォルト値が使用されます:
|
|
445
|
+
|
|
446
|
+
- `APPROVAL_GATES_REQUIREMENTS`: `pm,director`
|
|
447
|
+
- `APPROVAL_GATES_DESIGN`: `architect,director`
|
|
448
|
+
- `APPROVAL_GATES_RELEASE`: `sm,director`
|
|
449
|
+
|
|
450
|
+
#### 注意事項
|
|
451
|
+
|
|
452
|
+
- ロール名はカンマ区切りで指定します
|
|
453
|
+
- 各ロール名の前後の空白は自動的にトリムされます
|
|
454
|
+
- 空のロール名は無視されます
|
|
455
|
+
- 環境変数が未設定の場合は、デフォルト値が使用されます
|
|
456
|
+
|
|
457
|
+
### プロジェクト固有設定ファイル(.michi/config.json)
|
|
458
|
+
|
|
459
|
+
`.michi/config.json` を作成することで、Confluence/JIRAの動作をカスタマイズできます。
|
|
460
|
+
|
|
461
|
+
#### 設定ファイルの作成
|
|
462
|
+
|
|
463
|
+
プロジェクトルートに `.michi/config.json` を作成:
|
|
464
|
+
|
|
465
|
+
**注意**: 以前は `.kiro/config.json` を使用していましたが、Michi専用の設定ファイルとして `.michi/config.json` に変更されました。
|
|
466
|
+
|
|
467
|
+
```json
|
|
468
|
+
{
|
|
469
|
+
"confluence": {
|
|
470
|
+
"pageCreationGranularity": "by-hierarchy",
|
|
471
|
+
"spaces": {
|
|
472
|
+
"requirements": "Michi",
|
|
473
|
+
"design": "Michi",
|
|
474
|
+
"tasks": "Michi"
|
|
475
|
+
},
|
|
476
|
+
"hierarchy": {
|
|
477
|
+
"mode": "simple",
|
|
478
|
+
"parentPageTitle": "[{projectName}] {featureName}"
|
|
479
|
+
}
|
|
480
|
+
},
|
|
481
|
+
"jira": {
|
|
482
|
+
"createEpic": true,
|
|
483
|
+
"storyCreationGranularity": "all",
|
|
484
|
+
"storyPoints": "auto",
|
|
485
|
+
"issueTypes": {
|
|
486
|
+
"story": "10036",
|
|
487
|
+
"subtask": "10037"
|
|
488
|
+
}
|
|
489
|
+
},
|
|
490
|
+
"workflow": {
|
|
491
|
+
"enabledPhases": ["requirements", "design", "tasks"],
|
|
492
|
+
"approvalGates": {
|
|
493
|
+
"requirements": ["leader", "director"],
|
|
494
|
+
"design": ["leader", "director"],
|
|
495
|
+
"release": ["service-manager", "director"]
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
#### 設定値の詳細
|
|
502
|
+
|
|
503
|
+
すべての設定値の詳細は [設定値リファレンス](../reference/config.md) を参照してください。
|
|
504
|
+
|
|
505
|
+
#### 設定の優先順位
|
|
506
|
+
|
|
507
|
+
設定値は以下の優先順位で決定されます:
|
|
508
|
+
|
|
509
|
+
1. **`spec.json`**: 機能固有の設定(最優先)
|
|
510
|
+
2. **`.michi/config.json`**: プロジェクト固有の設定
|
|
511
|
+
3. **環境変数**: システム環境変数または`.env`ファイル
|
|
512
|
+
4. **デフォルト値**: スキーマで定義されたデフォルト値
|
|
513
|
+
|
|
514
|
+
#### よくある設定パターン
|
|
515
|
+
|
|
516
|
+
詳細は [カスタマイズガイド](../guides/customization.md) を参照してください。
|
|
517
|
+
|
|
395
518
|
## 参考リンク
|
|
396
519
|
|
|
397
520
|
### AI開発フレームワーク
|
|
@@ -474,7 +474,7 @@ npm run config:validate
|
|
|
474
474
|
### Michi関連
|
|
475
475
|
- [セットアップガイド](../getting-started/setup.md)
|
|
476
476
|
- [ワークフローガイド](./workflow.md)
|
|
477
|
-
- [
|
|
477
|
+
- [新規リポジトリセットアップ](../getting-started/new-repository-setup.md)
|
|
478
478
|
- [設定値リファレンス](../reference/config.md)
|
|
479
479
|
|
|
480
480
|
### cc-sdd関連
|
|
@@ -10,7 +10,7 @@ Michiは、複数プロジェクト(3-5案件)を同時並行で管理でき
|
|
|
10
10
|
|
|
11
11
|
### プロジェクト構成
|
|
12
12
|
|
|
13
|
-
**構成**: 1
|
|
13
|
+
**構成**: 1つのリポジトリ内で複数プロジェクトを管理します。**すべてのプロジェクト(単一プロジェクトも含む)は`projects/`ディレクトリ配下に配置され、それぞれに`.kiro/project.json`を持ちます。**
|
|
14
14
|
|
|
15
15
|
```
|
|
16
16
|
repository/ ← 1つのGitHubリポジトリ
|
|
@@ -23,14 +23,17 @@ repository/ ← 1つのGitHubリポジトリ
|
|
|
23
23
|
│ │ └── .kiro/
|
|
24
24
|
│ └── 20240310-analytics-api/ ← プロジェクトC
|
|
25
25
|
│ └── .kiro/
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
├── package.json ← リポジトリルート(共有)
|
|
27
|
+
├── tsconfig.json ← リポジトリルート(共有)
|
|
28
|
+
└── .gitignore ← リポジトリルート(共有)
|
|
28
29
|
```
|
|
29
30
|
|
|
30
|
-
|
|
31
|
+
**重要な原則**:
|
|
32
|
+
- **統一されたディレクトリ構成**: 単一プロジェクトも`projects/{project-id}/`配下に配置
|
|
31
33
|
- 各プロジェクトディレクトリに`.kiro/project.json`を配置
|
|
32
34
|
- 作業ディレクトリ(`process.cwd()`)から`.kiro/project.json`を読み込んでプロジェクトを識別
|
|
33
35
|
- プロジェクト切り替えは、該当ディレクトリに移動するだけ
|
|
36
|
+
- `package.json`や`tsconfig.json`はリポジトリルートに配置(複数プロジェクトで共有)
|
|
34
37
|
|
|
35
38
|
### 統合管理
|
|
36
39
|
|
|
@@ -47,7 +50,7 @@ repository/ ← 1つのGitHubリポジトリ
|
|
|
47
50
|
|
|
48
51
|
### 新規プロジェクト追加
|
|
49
52
|
|
|
50
|
-
詳細な手順は [
|
|
53
|
+
詳細な手順は [新規リポジトリセットアップガイド](../getting-started/new-repository-setup.md) を参照してください。
|
|
51
54
|
|
|
52
55
|
**クイックスタート**:
|
|
53
56
|
1. 既存リポジトリに追加: `bash /path/to/michi/scripts/setup-existing.sh`
|
|
@@ -62,7 +65,7 @@ repository/ ← 1つのGitHubリポジトリ
|
|
|
62
65
|
|
|
63
66
|
### 環境変数設定
|
|
64
67
|
|
|
65
|
-
各プロジェクトで`.env`ファイルを設定します。詳細は [
|
|
68
|
+
各プロジェクトで`.env`ファイルを設定します。詳細は [新規リポジトリセットアップガイド](../getting-started/new-repository-setup.md#step-5-環境変数設定) を参照してください。
|
|
66
69
|
|
|
67
70
|
### 動作確認
|
|
68
71
|
|
|
@@ -210,7 +213,7 @@ ls -la .kiro/specs/
|
|
|
210
213
|
|
|
211
214
|
**解決方法**:
|
|
212
215
|
1. プロジェクトディレクトリが正しいか確認
|
|
213
|
-
2. `.kiro/project.json`を作成([
|
|
216
|
+
2. `.kiro/project.json`を作成([新規リポジトリセットアップガイド](../getting-started/new-repository-setup.md)を参照)
|
|
214
217
|
|
|
215
218
|
## プロジェクト横断操作
|
|
216
219
|
|
|
@@ -322,7 +325,7 @@ shared-infrastructure/
|
|
|
322
325
|
**Confluenceラベル**: `project:{projectId}, service:{service}`
|
|
323
326
|
- 例: `project:20240115-payment-api, service:payment`
|
|
324
327
|
|
|
325
|
-
**ラベル生成ロジック**: 詳細は [
|
|
328
|
+
**ラベル生成ロジック**: 詳細は [新規リポジトリセットアップガイド](../getting-started/new-repository-setup.md#ラベル生成ロジック) を参照してください。
|
|
326
329
|
### チーム構成の明確化
|
|
327
330
|
|
|
328
331
|
各プロジェクトの `team` フィールドに担当者を記載:
|