@sk8metal/michi-cli 0.0.3 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +25 -25
  3. package/dist/scripts/config/config-schema.d.ts +109 -600
  4. package/dist/scripts/config/config-schema.d.ts.map +1 -1
  5. package/dist/scripts/config/config-schema.js.map +1 -1
  6. package/dist/scripts/config-interactive.d.ts +1 -1
  7. package/dist/scripts/config-interactive.d.ts.map +1 -1
  8. package/dist/scripts/config-interactive.js +7 -7
  9. package/dist/scripts/config-interactive.js.map +1 -1
  10. package/dist/scripts/confluence-sync.js +5 -5
  11. package/dist/scripts/confluence-sync.js.map +1 -1
  12. package/dist/scripts/create-project.d.ts +2 -2
  13. package/dist/scripts/create-project.js +2 -2
  14. package/dist/scripts/create-project.js.map +1 -1
  15. package/dist/scripts/jira-sync.js +8 -8
  16. package/dist/scripts/jira-sync.js.map +1 -1
  17. package/dist/scripts/markdown-to-confluence.js +1 -1
  18. package/dist/scripts/markdown-to-confluence.js.map +1 -1
  19. package/dist/scripts/multi-project-estimate.js +1 -1
  20. package/dist/scripts/phase-runner.js.map +1 -1
  21. package/dist/scripts/pre-flight-check.js +1 -1
  22. package/dist/scripts/setup-existing-project.js.map +1 -1
  23. package/dist/scripts/utils/__tests__/config-loader.test.d.ts +5 -0
  24. package/dist/scripts/utils/__tests__/config-loader.test.d.ts.map +1 -0
  25. package/dist/scripts/utils/__tests__/config-loader.test.js +201 -0
  26. package/dist/scripts/utils/__tests__/config-loader.test.js.map +1 -0
  27. package/dist/scripts/utils/__tests__/config-validator.test.js +29 -16
  28. package/dist/scripts/utils/__tests__/config-validator.test.js.map +1 -1
  29. package/dist/scripts/utils/config-loader.d.ts +4 -0
  30. package/dist/scripts/utils/config-loader.d.ts.map +1 -1
  31. package/dist/scripts/utils/config-loader.js +24 -2
  32. package/dist/scripts/utils/config-loader.js.map +1 -1
  33. package/dist/scripts/utils/config-validator.d.ts.map +1 -1
  34. package/dist/scripts/utils/config-validator.js +50 -51
  35. package/dist/scripts/utils/config-validator.js.map +1 -1
  36. package/dist/scripts/utils/confluence-hierarchy.js +7 -7
  37. package/dist/scripts/utils/confluence-hierarchy.js.map +1 -1
  38. package/dist/scripts/validate-phase.js.map +1 -1
  39. package/dist/scripts/workflow-orchestrator.js.map +1 -1
  40. package/dist/src/cli.js +2 -2
  41. package/dist/src/cli.js.map +1 -1
  42. package/dist/vitest.config.d.ts.map +1 -1
  43. package/dist/vitest.config.js +8 -4
  44. package/dist/vitest.config.js.map +1 -1
  45. package/docs/config-reference.md +76 -197
  46. package/docs/customization-guide.md +61 -9
  47. package/docs/multi-project.md +157 -25
  48. package/docs/new-project-setup.md +36 -36
  49. package/docs/quick-reference.md +23 -20
  50. package/docs/release.md +365 -0
  51. package/docs/setup.md +5 -3
  52. package/env.example +3 -1
  53. package/package.json +15 -13
  54. package/scripts/config/config-schema.ts +5 -5
  55. package/scripts/config-interactive.ts +7 -6
  56. package/scripts/confluence-sync.ts +5 -5
  57. package/scripts/create-project.ts +21 -21
  58. package/scripts/jira-sync.ts +8 -8
  59. package/scripts/markdown-to-confluence.ts +1 -1
  60. package/scripts/multi-project-estimate.ts +1 -1
  61. package/scripts/phase-runner.ts +8 -8
  62. package/scripts/pre-flight-check.ts +1 -1
  63. package/scripts/setup-existing-project.ts +9 -9
  64. package/scripts/setup-existing.sh +1 -1
  65. package/scripts/utils/__tests__/config-loader.test.ts +254 -0
  66. package/scripts/utils/__tests__/config-validator.test.ts +32 -16
  67. package/scripts/utils/config-loader.ts +30 -2
  68. package/scripts/utils/config-validator.ts +51 -50
  69. package/scripts/utils/confluence-hierarchy.ts +51 -51
  70. package/scripts/validate-phase.ts +11 -11
  71. package/scripts/workflow-orchestrator.ts +27 -27
  72. package/docs/testing.md +0 -202
@@ -1,10 +1,12 @@
1
1
  # 設定値リファレンス
2
2
 
3
- このドキュメントでは、`.kiro/config.json`で設定可能なすべての設定値について説明します。
3
+ このドキュメントでは、`.michi/config.json`で設定可能なすべての設定値について説明します。
4
4
 
5
5
  ## 設定ファイルの場所
6
6
 
7
- プロジェクトルートの `.kiro/config.json` に設定を記述します。
7
+ プロジェクトルートの `.michi/config.json` に設定を記述します。
8
+
9
+ **注意**: 以前は `.kiro/config.json` を使用していましたが、Michi専用の設定ファイルとして `.michi/config.json` に変更されました。`.kiro/config.json` が存在する場合は警告が表示されます。
8
10
 
9
11
  ```json
10
12
  {
@@ -16,50 +18,15 @@
16
18
 
17
19
  ## Confluence設定
18
20
 
19
- ### `confluence.pageCreationGranularity`
20
-
21
- **型**: `'single' | 'by-section' | 'by-hierarchy' | 'manual'`
22
- **デフォルト**: `'single'`
23
- **必須**: いいえ
24
-
25
- ページ作成の粒度を指定します。
26
-
27
- - `'single'`: 1つのMarkdownファイルを1つのConfluenceページとして作成
28
- - `'by-section'`: Markdownのセクションごとにページを作成
29
- - `'by-hierarchy'`: 階層構造に基づいてページを作成(`hierarchy`設定が必要)
30
- - `'manual'`: 手動で定義した構造に基づいてページを作成(`hierarchy.structure`設定が必要)
31
-
32
- ### `confluence.pageTitleFormat`
33
-
34
- **型**: `string`
35
- **デフォルト**: `'[{projectName}] {featureName} {docTypeLabel}'`
36
- **必須**: いいえ
37
-
38
- ページタイトルのフォーマットを指定します。以下のプレースホルダーが使用できます:
39
-
40
- - `{projectName}`: プロジェクト名(`.kiro/project.json`から取得)
41
- - `{featureName}`: 機能名
42
- - `{docTypeLabel}`: ドキュメントタイプのラベル(要件定義、設計書、タスク)
21
+ | 設定項目 | 型 | デフォルト | 必須 | 説明 | 値の説明 |
22
+ |---------|-----|-----------|------|------|---------|
23
+ | `confluence.pageCreationGranularity` | `'single' \| 'by-section' \| 'by-hierarchy' \| 'manual'` | `'single'` | いいえ | ページ作成の粒度を指定 | `'single'`: 1つのMarkdownファイルを1つのConfluenceページとして作成<br>`'by-section'`: Markdownのセクションごとにページを作成<br>`'by-hierarchy'`: 階層構造に基づいてページを作成(`hierarchy`設定が必要)<br>`'manual'`: 手動で定義した構造に基づいてページを作成(`hierarchy.structure`設定が必要) |
24
+ | `confluence.pageTitleFormat` | `string` | `'[{projectName}] {featureName} {docTypeLabel}'` | いいえ | ページタイトルのフォーマットを指定 | プレースホルダー: `{projectName}`(プロジェクト名)、`{featureName}`(機能名)、`{docTypeLabel}`(ドキュメントタイプのラベル) |
25
+ | `confluence.autoLabels` | `string[]` | `['{projectLabel}', '{docType}', '{featureName}', 'github-sync']` | いいえ | Confluenceページに自動的に付与するラベルのリスト | プレースホルダー: `{projectLabel}`(プロジェクトラベル)、`{docType}`(ドキュメントタイプ)、`{featureName}`(機能名) |
26
+ | `confluence.spaces` | `{ requirements?: string, design?: string, tasks?: string }` | 環境変数`CONFLUENCE_PRD_SPACE`、または`'PRD'` | いいえ(推奨) | 各ドキュメントタイプをどのConfluenceスペースに作成するかを指定 | `requirements`: 要件定義用スペース<br>`design`: 設計用スペース<br>`tasks`: タスク用スペース |
27
+ | `confluence.hierarchy` | `{ mode?: 'simple' \| 'nested', parentPageTitle?: string, createDocTypeParents?: boolean, structure?: object }` | なし | `pageCreationGranularity`が`'by-hierarchy'`または`'manual'`の場合 | 階層構造の設定 | 詳細は下記の子項目を参照 |
43
28
 
44
- ### `confluence.autoLabels`
45
-
46
- **型**: `string[]`
47
- **デフォルト**: `['{projectLabel}', '{docType}', '{featureName}', 'github-sync']`
48
- **必須**: いいえ
49
-
50
- Confluenceページに自動的に付与するラベルのリスト。以下のプレースホルダーが使用できます:
51
-
52
- - `{projectLabel}`: プロジェクトラベル(`project:michi`など)
53
- - `{docType}`: ドキュメントタイプ(`requirements`, `design`, `tasks`)
54
- - `{featureName}`: 機能名
55
-
56
- ### `confluence.spaces`
57
-
58
- **型**: `{ requirements?: string, design?: string, tasks?: string }`
59
- **デフォルト**: 環境変数`CONFLUENCE_PRD_SPACE`、または`'PRD'`
60
- **必須**: いいえ(推奨)
61
-
62
- 各ドキュメントタイプをどのConfluenceスペースに作成するかを指定します。
29
+ ### `confluence.spaces` の設定例
63
30
 
64
31
  ```json
65
32
  {
@@ -75,110 +42,27 @@ Confluenceページに自動的に付与するラベルのリスト。以下の
75
42
 
76
43
  **注意**: 設定されていない場合、環境変数`CONFLUENCE_PRD_SPACE`が使用されます。それもない場合は`'PRD'`がデフォルト値として使用されます。
77
44
 
78
- ### `confluence.hierarchy`
79
-
80
- **型**: `{ mode?: 'simple' | 'nested', parentPageTitle?: string, createDocTypeParents?: boolean, structure?: object }`
81
- **デフォルト**: なし
82
- **必須**: `pageCreationGranularity`が`'by-hierarchy'`または`'manual'`の場合
83
-
84
- 階層構造の設定です。
45
+ ### `confluence.hierarchy` の子項目
85
46
 
86
- #### `confluence.hierarchy.mode`
87
-
88
- **型**: `'simple' | 'nested'`
89
- **デフォルト**: `'simple'`
90
- **必須**: いいえ
91
-
92
- 階層構造のモードを指定します。
93
-
94
- - `'simple'`: シンプルな親子構造
95
- - `'nested'`: ネストされた階層構造
96
-
97
- #### `confluence.hierarchy.parentPageTitle`
98
-
99
- **型**: `string`
100
- **デフォルト**: なし
101
- **必須**: `pageCreationGranularity`が`'by-hierarchy'`の場合(推奨)
102
-
103
- 親ページのタイトルフォーマットを指定します。プレースホルダーが使用できます:
104
-
105
- - `{projectName}`: プロジェクト名
106
- - `{featureName}`: 機能名
107
-
108
- 例: `"[{projectName}] {featureName}"`
109
-
110
- #### `confluence.hierarchy.createDocTypeParents`
111
-
112
- **型**: `boolean`
113
- **デフォルト**: `false`
114
- **必須**: いいえ
115
-
116
- ドキュメントタイプごとの親ページを作成するかどうかを指定します。
117
-
118
- #### `confluence.hierarchy.structure`
119
-
120
- **型**: `object`
121
- **デフォルト**: なし
122
- **必須**: `pageCreationGranularity`が`'manual'`の場合
123
-
124
- 手動で定義した階層構造。詳細は実装を参照してください。
47
+ | 設定項目 | 型 | デフォルト | 必須 | 説明 | 値の説明 |
48
+ |---------|-----|-----------|------|------|---------|
49
+ | `confluence.hierarchy.mode` | `'simple' \| 'nested'` | `'simple'` | いいえ | 階層構造のモードを指定 | `'simple'`: シンプルな親子構造<br>`'nested'`: ネストされた階層構造 |
50
+ | `confluence.hierarchy.parentPageTitle` | `string` | なし | `pageCreationGranularity`が`'by-hierarchy'`の場合(推奨) | 親ページのタイトルフォーマットを指定 | プレースホルダー: `{projectName}`(プロジェクト名)、`{featureName}`(機能名)<br>例: `"[{projectName}] {featureName}"` |
51
+ | `confluence.hierarchy.createDocTypeParents` | `boolean` | `false` | いいえ | ドキュメントタイプごとの親ページを作成するかどうかを指定 | `true`: 作成する<br>`false`: 作成しない |
52
+ | `confluence.hierarchy.structure` | `object` | なし | `pageCreationGranularity`が`'manual'`の場合 | 手動で定義した階層構造 | 詳細は実装を参照してください |
125
53
 
126
54
  ## JIRA設定
127
55
 
128
- ### `jira.storyCreationGranularity`
129
-
130
- **型**: `'all' | 'by-phase' | 'selected-phases'`
131
- **デフォルト**: `'all'`
132
- **必須**: いいえ
133
-
134
- ストーリー作成の粒度を指定します。
56
+ | 設定項目 | 型 | デフォルト | 必須 | 説明 | 値の説明 |
57
+ |---------|-----|-----------|------|------|---------|
58
+ | `jira.storyCreationGranularity` | `'all' \| 'by-phase' \| 'selected-phases'` | `'all'` | いいえ | ストーリー作成の粒度を指定 | `'all'`: すべてのフェーズのストーリーを作成<br>`'by-phase'`: フェーズごとにストーリーを作成<br>`'selected-phases'`: `selectedPhases`で指定したフェーズのみストーリーを作成 |
59
+ | `jira.createEpic` | `boolean` | `true` | いいえ | Epicを作成するかどうかを指定 | `true`: Epicを作成<br>`false`: Epicを作成しない |
60
+ | `jira.storyPoints` | `'auto' \| 'manual' \| 'disabled'` | `'auto'` | いいえ | ストーリーポイントの設定方法を指定 | `'auto'`: 自動計算<br>`'manual'`: 手動設定(tasks.mdから取得)<br>`'disabled'`: ストーリーポイントを設定しない |
61
+ | `jira.autoLabels` | `string[]` | `['{projectLabel}', '{featureName}', '{phaseLabel}']` | いいえ | JIRAチケットに自動的に付与するラベルのリスト | プレースホルダー: `{projectLabel}`(プロジェクトラベル)、`{featureName}`(機能名)、`{phaseLabel}`(フェーズラベル) |
62
+ | `jira.issueTypes` | `{ epic?: string, story?: string, subtask?: string }` | `{ epic: 'Epic', story: null, subtask: null }` | いいえ(`story`は推奨) | JIRAのIssue Type IDを指定 | `epic`: EpicのIssue Type ID<br>`story`: StoryのIssue Type ID(環境変数`JIRA_ISSUE_TYPE_STORY`でも設定可能)<br>`subtask`: SubtaskのIssue Type ID(環境変数`JIRA_ISSUE_TYPE_SUBTASK`でも設定可能) |
63
+ | `jira.selectedPhases` | `string[]` | なし | `storyCreationGranularity`が`'selected-phases'`の場合 | ストーリーを作成するフェーズのリスト | 例: `['Requirements', 'Design', 'Implementation']` |
135
64
 
136
- - `'all'`: すべてのフェーズのストーリーを作成
137
- - `'by-phase'`: フェーズごとにストーリーを作成
138
- - `'selected-phases'`: `selectedPhases`で指定したフェーズのみストーリーを作成
139
-
140
- ### `jira.createEpic`
141
-
142
- **型**: `boolean`
143
- **デフォルト**: `true`
144
- **必須**: いいえ
145
-
146
- Epicを作成するかどうかを指定します。
147
-
148
- ### `jira.storyPoints`
149
-
150
- **型**: `'auto' | 'manual' | 'disabled'`
151
- **デフォルト**: `'auto'`
152
- **必須**: いいえ
153
-
154
- ストーリーポイントの設定方法を指定します。
155
-
156
- - `'auto'`: 自動計算
157
- - `'manual'`: 手動設定(tasks.mdから取得)
158
- - `'disabled'`: ストーリーポイントを設定しない
159
-
160
- ### `jira.autoLabels`
161
-
162
- **型**: `string[]`
163
- **デフォルト**: `['{projectLabel}', '{featureName}', '{phaseLabel}']`
164
- **必須**: いいえ
165
-
166
- JIRAチケットに自動的に付与するラベルのリスト。以下のプレースホルダーが使用できます:
167
-
168
- - `{projectLabel}`: プロジェクトラベル(`project:michi`など)
169
- - `{featureName}`: 機能名
170
- - `{phaseLabel}`: フェーズラベル(`Requirements`, `Design`など)
171
-
172
- ### `jira.issueTypes`
173
-
174
- **型**: `{ epic?: string, story?: string, subtask?: string }`
175
- **デフォルト**: `{ epic: 'Epic', story: null, subtask: null }`
176
- **必須**: いいえ(`story`は推奨)
177
-
178
- JIRAのIssue Type IDを指定します。`story`と`subtask`は環境変数でも設定可能です:
179
-
180
- - `JIRA_ISSUE_TYPE_STORY`: StoryのIssue Type ID
181
- - `JIRA_ISSUE_TYPE_SUBTASK`: SubtaskのIssue Type ID
65
+ ### `jira.issueTypes` の詳細
182
66
 
183
67
  **注意**: `story`が設定されていない場合、環境変数`JIRA_ISSUE_TYPE_STORY`が使用されます。それもない場合はエラーになります。
184
68
 
@@ -186,33 +70,15 @@ JIRAのIssue Type IDを指定します。`story`と`subtask`は環境変数で
186
70
  - JIRA管理画面: Settings > Issues > Issue types
187
71
  - REST API: `GET https://your-domain.atlassian.net/rest/api/3/issuetype`
188
72
 
189
- ### `jira.selectedPhases`
190
-
191
- **型**: `string[]`
192
- **デフォルト**: なし
193
- **必須**: `storyCreationGranularity`が`'selected-phases'`の場合
194
-
195
- ストーリーを作成するフェーズのリスト。例: `['Requirements', 'Design', 'Implementation']`
196
-
197
73
  ## ワークフロー設定
198
74
 
199
- ### `workflow.enabledPhases`
200
-
201
- **型**: `string[]`
202
- **デフォルト**: `['requirements', 'design', 'tasks']`
203
- **必須**: いいえ
204
-
205
- 有効化するフェーズのリスト。有効な値: `'requirements'`, `'design'`, `'tasks'`
75
+ | 設定項目 | 型 | デフォルト | 必須 | 説明 | 値の説明 |
76
+ |---------|-----|-----------|------|------|---------|
77
+ | `workflow.enabledPhases` | `string[]` | `['requirements', 'design', 'tasks']` | いいえ | 有効化するフェーズのリスト | 有効な値: `'requirements'`, `'design'`, `'tasks'` |
78
+ | `workflow.approvalGates` | `{ requirements?: string[], design?: string[], release?: string[] }` | なし | いいえ | 各フェーズの承認ゲートを指定 | 承認者のロール名のリストを指定<br>`requirements`: 要件定義フェーズの承認者<br>`design`: 設計フェーズの承認者<br>`release`: リリースフェーズの承認者 |
206
79
 
207
- ### `workflow.approvalGates`
80
+ ### `workflow.approvalGates` の設定例
208
81
 
209
- **型**: `{ requirements?: string[], design?: string[], release?: string[] }`
210
- **デフォルト**: なし
211
- **必須**: いいえ
212
-
213
- 各フェーズの承認ゲートを指定します。承認者のロール名のリストを指定します。
214
-
215
- 例:
216
82
  ```json
217
83
  {
218
84
  "workflow": {
@@ -229,30 +95,39 @@ JIRAのIssue Type IDを指定します。`story`と`subtask`は環境変数で
229
95
 
230
96
  一部の設定値は環境変数でも設定可能です。環境変数の設定は`.env`ファイルに記述します。
231
97
 
98
+ ### Atlassian共通設定
99
+
100
+ | 環境変数名 | 対応する設定項目 | 説明 | デフォルト |
101
+ |-----------|----------------|------|-----------|
102
+ | `ATLASSIAN_REQUEST_DELAY` | - | Confluence/JIRA APIリクエスト間の遅延時間(ミリ秒) | `500` |
103
+
232
104
  ### Confluence関連
233
105
 
234
- - `CONFLUENCE_PRD_SPACE`: Confluenceスペースキー(`confluence.spaces`のデフォルト値)
235
- - `CONFLUENCE_BASE_URL`: ConfluenceのベースURL
236
- - `CONFLUENCE_USERNAME`: Confluenceのユーザー名
237
- - `CONFLUENCE_API_TOKEN`: ConfluenceのAPIトークン
238
- - `ATLASSIAN_REQUEST_DELAY`: リクエスト間の遅延時間(ミリ秒)
106
+ | 環境変数名 | 対応する設定項目 | 説明 | デフォルト |
107
+ |-----------|----------------|------|-----------|
108
+ | `CONFLUENCE_PRD_SPACE` | `confluence.spaces` | Confluenceスペースキー(`confluence.spaces`のデフォルト値) | `'PRD'` |
109
+ | `CONFLUENCE_BASE_URL` | - | ConfluenceのベースURL | なし |
110
+ | `CONFLUENCE_USERNAME` | - | Confluenceのユーザー名 | なし |
111
+ | `CONFLUENCE_API_TOKEN` | - | ConfluenceのAPIトークン | なし |
239
112
 
240
113
  ### JIRA関連
241
114
 
242
- - `JIRA_BASE_URL`: JIRAのベースURL
243
- - `JIRA_USERNAME`: JIRAのユーザー名
244
- - `JIRA_API_TOKEN`: JIRAのAPIトークン
245
- - `JIRA_PROJECT_KEY`: JIRAプロジェクトキー(`.kiro/project.json`からも取得可能)
246
- - `JIRA_ISSUE_TYPE_STORY`: StoryIssue Type ID
247
- - `JIRA_ISSUE_TYPE_SUBTASK`: SubtaskのIssue Type ID
248
- - `JIRA_EPIC_LINK_FIELD`: Epic LinkカスタムフィールドID(例: `customfield_10014`)
115
+ | 環境変数名 | 対応する設定項目 | 説明 | デフォルト |
116
+ |-----------|----------------|------|-----------|
117
+ | `JIRA_BASE_URL` | - | JIRAのベースURL | なし |
118
+ | `JIRA_USERNAME` | - | JIRAのユーザー名 | なし |
119
+ | `JIRA_API_TOKEN` | - | JIRAAPIトークン | なし |
120
+ | `JIRA_PROJECT_KEY` | - | JIRAプロジェクトキー(`.kiro/project.json`からも取得可能) | なし |
121
+ | `JIRA_ISSUE_TYPE_STORY` | `jira.issueTypes.story` | StoryのIssue Type ID | なし |
122
+ | `JIRA_ISSUE_TYPE_SUBTASK` | `jira.issueTypes.subtask` | SubtaskのIssue Type ID | なし |
123
+ | `JIRA_EPIC_LINK_FIELD` | - | Epic LinkカスタムフィールドID(例: `customfield_10014`) | なし |
249
124
 
250
125
  ## 設定の優先順位
251
126
 
252
127
  設定値は以下の優先順位で決定されます:
253
128
 
254
129
  1. **`spec.json`**: 機能固有の設定(最優先)
255
- 2. **`.kiro/config.json`**: プロジェクト固有の設定
130
+ 2. **`.michi/config.json`**: プロジェクト固有の設定
256
131
  3. **環境変数**: システム環境変数または`.env`ファイル
257
132
  4. **デフォルト値**: スキーマで定義されたデフォルト値
258
133
 
@@ -312,8 +187,8 @@ JIRAのIssue Type IDを指定します。`story`と`subtask`は環境変数で
312
187
  "storyCreationGranularity": "all",
313
188
  "storyPoints": "auto",
314
189
  "issueTypes": {
315
- "story": "10036",
316
- "subtask": "10037"
190
+ "story": "1",
191
+ "subtask": "2"
317
192
  }
318
193
  },
319
194
  "workflow": {
@@ -365,8 +240,8 @@ JIRAのIssue Type IDを指定します。`story`と`subtask`は環境変数で
365
240
  "autoLabels": ["{projectLabel}", "{featureName}", "{phaseLabel}"],
366
241
  "issueTypes": {
367
242
  "epic": "Epic",
368
- "story": "10036",
369
- "subtask": "10037"
243
+ "story": "1",
244
+ "subtask": "2"
370
245
  }
371
246
  },
372
247
  "workflow": {
@@ -413,8 +288,8 @@ JIRAのIssue Type IDを指定します。`story`と`subtask`は環境変数で
413
288
  "storyCreationGranularity": "all",
414
289
  "storyPoints": "auto",
415
290
  "issueTypes": {
416
- "story": "10036",
417
- "subtask": "10037"
291
+ "story": "1",
292
+ "subtask": "2"
418
293
  }
419
294
  },
420
295
  "workflow": {
@@ -455,7 +330,11 @@ JIRAのIssue Type IDを指定します。`story`と`subtask`は環境変数で
455
330
  バリデーションを手動で実行する場合:
456
331
 
457
332
  ```bash
458
- tsx scripts/utils/config-validator.ts
333
+ # 推奨: npmスクリプト経由
334
+ npm run config:validate
335
+
336
+ # または、npx経由
337
+ npx tsx scripts/utils/config-validator.ts
459
338
  ```
460
339
 
461
340
  ## トラブルシューティング
@@ -467,14 +346,14 @@ tsx scripts/utils/config-validator.ts
467
346
  **原因と解決方法**:
468
347
 
469
348
  1. **JSON構文エラー**
470
- - `.kiro/config.json`のJSON構文が正しいか確認
349
+ - `.michi/config.json`のJSON構文が正しいか確認
471
350
  - JSONバリデーターを使用: `npx tsx scripts/utils/config-validator.ts`
472
351
  - よくあるエラー: 末尾のカンマ、引用符の不一致
473
352
 
474
353
  2. **設定ファイルのパスが間違っている**
475
- - 設定ファイルのパスが正しいか確認(プロジェクトルートの`.kiro/config.json`)
354
+ - 設定ファイルのパスが正しいか確認(プロジェクトルートの`.michi/config.json`)
476
355
  - 現在のディレクトリを確認: `pwd`
477
- - 設定ファイルの存在確認: `ls -la .kiro/config.json`
356
+ - 設定ファイルの存在確認: `ls -la .michi/config.json`
478
357
 
479
358
  3. **優先順位の問題**
480
359
  - 環境変数が設定されている場合、環境変数の優先順位を確認
@@ -482,7 +361,7 @@ tsx scripts/utils/config-validator.ts
482
361
  - 設定の優先順位: `spec.json` > `config.json` > 環境変数 > デフォルト値
483
362
 
484
363
  4. **設定ファイルの読み込みエラー**
485
- - 設定ファイルの権限を確認: `chmod 644 .kiro/config.json`
364
+ - 設定ファイルの権限を確認: `chmod 644 .michi/config.json`
486
365
  - ファイルエンコーディングを確認(UTF-8推奨)
487
366
 
488
367
  ### 必須設定値エラー
@@ -500,7 +379,7 @@ tsx scripts/utils/config-validator.ts
500
379
  ```
501
380
 
502
381
  **解決方法**:
503
- 1. `.kiro/config.json`に以下を追加:
382
+ 1. `.michi/config.json`に以下を追加:
504
383
  ```json
505
384
  {
506
385
  "jira": {
@@ -529,7 +408,7 @@ export JIRA_ISSUE_TYPE_STORY=10036
529
408
  ```
530
409
 
531
410
  **解決方法**:
532
- `.kiro/config.json`に以下を追加:
411
+ `.michi/config.json`に以下を追加:
533
412
  ```json
534
413
  {
535
414
  "confluence": {
@@ -560,7 +439,7 @@ export JIRA_ISSUE_TYPE_STORY=10036
560
439
  ```
561
440
 
562
441
  **解決方法**:
563
- 1. `.kiro/config.json`に以下を追加:
442
+ 1. `.michi/config.json`に以下を追加:
564
443
  ```json
565
444
  {
566
445
  "confluence": {
@@ -621,7 +500,7 @@ export CONFLUENCE_PRD_SPACE=Michi
621
500
  - JIRA同期時: 設定値のソースが表示される
622
501
 
623
502
  2. **設定ファイルの優先順位を理解**
624
- - `spec.json` > `.kiro/config.json` > 環境変数 > デフォルト値
503
+ - `spec.json` > `.michi/config.json` > 環境変数 > デフォルト値
625
504
  - 同じ設定値が複数箇所にある場合、優先順位の高いものが使用される
626
505
 
627
506
  3. **デバッグ方法**
@@ -655,12 +534,12 @@ A: プロジェクト固有の設定は`config.json`に、個人固有の設定
655
534
 
656
535
  A:
657
536
  - `spec.json`: 機能固有の設定(`.kiro/specs/<feature>/spec.json`)
658
- - `config.json`: プロジェクト全体の設定(`.kiro/config.json`)
537
+ - `config.json`: プロジェクト全体の設定(`.michi/config.json`)
659
538
  - `spec.json`が最優先で、機能ごとに異なる設定が可能
660
539
 
661
540
  **Q: 設定ファイルをGitで管理すべきか**
662
541
 
663
542
  A:
664
- - `.kiro/config.json`: チーム固有設定のため、`.gitignore`に追加することを推奨
543
+ - `.michi/config.json`: チーム固有設定のため、`.gitignore`に追加することを推奨
665
544
  - `spec.json`: 機能仕様の一部のため、Gitで管理することを推奨
666
545
 
@@ -4,7 +4,50 @@
4
4
 
5
5
  ## 概要
6
6
 
7
- Michiでは、チームごとに異なる開発フローに対応するため、Confluence/JIRAの作成粒度やワークフロー設定をカスタマイズ可能にしています。
7
+ Michiでは、チームやPJごとに異なる開発フローに対応するため、Confluence/JIRAの作成粒度やワークフロー設定をカスタマイズ可能にしています。
8
+
9
+ ## cc-sddのカスタマイズとの関係
10
+
11
+ Michiは[cc-sdd](https://github.com/gotalab/cc-sdd)をベースとしており、カスタマイズには2つの種類があります:
12
+
13
+ ### 1. cc-sddのカスタマイズ(テンプレート・ルール)
14
+
15
+ **対象**: AIが生成するドキュメントの構造や判断基準
16
+ - **templates/**: `requirements.md`, `design.md`, `tasks.md`の構造・フォーマット
17
+ - **rules/**: AIの判断基準・生成原則
18
+ - **steering/**: プロジェクトメモリ(`/kiro:steering-custom`で作成)
19
+
20
+ **詳細**: [cc-sdd カスタマイズガイド](https://github.com/gotalab/cc-sdd/blob/main/docs/guides/ja/customization-guide.md)
21
+
22
+ **主なカスタマイズ内容**:
23
+ - 要件定義書の見出し形式(日本語/英語/カスタム)
24
+ - 設計ドキュメントのセクション構造
25
+ - タスク分解の粒度と形式
26
+ - EARS形式の要件記述ルール
27
+ - カスタムSteeringドキュメント(API標準、セキュリティポリシーなど)
28
+
29
+ ### 2. Michiのカスタマイズ(設定ファイル)
30
+
31
+ **対象**: Confluence/JIRAの作成方法やワークフロー設定
32
+ - **`.michi/config.json`**: Confluence階層構造、JIRA Story作成粒度、承認ゲート設定
33
+
34
+ **詳細**: 本ドキュメント(以下を参照)
35
+
36
+ **主なカスタマイズ内容**:
37
+ - Confluenceページの階層構造(フラット/階層/セクション分割)
38
+ - JIRA Story作成粒度(全作成/フェーズごと/選択フェーズのみ)
39
+ - ワークフロー承認ゲート設定
40
+
41
+ ### 使い分け
42
+
43
+ | カスタマイズ種類 | 対象 | 設定場所 | コマンド |
44
+ |----------------|------|---------|---------|
45
+ | **cc-sdd** | ドキュメント構造・AI判断基準 | `.kiro/settings/templates/`, `.kiro/settings/rules/`, `.kiro/steering/` | `/kiro:steering-custom` |
46
+ | **Michi** | Confluence/JIRA作成方法 | `.michi/config.json` | `michi config:interactive` |
47
+
48
+ **例**:
49
+ - 要件定義書の見出しを「要件 N:」から「REQ-N:」に変更 → **cc-sddのカスタマイズ**(`templates/requirements.md`を編集)
50
+ - Confluenceページを階層構造にする → **Michiのカスタマイズ**(`.michi/config.json`で設定)
8
51
 
9
52
  ## 設定ファイルの構造
10
53
 
@@ -14,9 +57,11 @@ Michiでは、チームごとに異なる開発フローに対応するため、
14
57
 
15
58
  ### プロジェクト固有設定
16
59
 
17
- `.kiro/config.json` - プロジェクトルートに配置(オプション)
60
+ `.michi/config.json` - プロジェクトルートに配置(オプション)
61
+
62
+ **重要**: `.michi/config.json`は`.gitignore`に追加することを推奨します(チーム固有設定のため)
18
63
 
19
- **重要**: `.kiro/config.json`は`.gitignore`に追加することを推奨します(チーム固有設定のため)
64
+ **注意**: 以前は `.kiro/config.json` を使用していましたが、Michi専用の設定ファイルとして `.michi/config.json` に変更されました。
20
65
 
21
66
  ### 設定のマージ順序
22
67
 
@@ -297,14 +342,14 @@ Confluenceスペース
297
342
  }
298
343
  ```
299
344
 
300
- ### 承認ゲートの設定
345
+ ### 承認者の設定
301
346
 
302
347
  **設定例: 日本語ロール名を使用**
303
348
  ```json
304
349
  {
305
350
  "workflow": {
306
351
  "approvalGates": {
307
- "requirements": ["企画", "部長"],
352
+ "requirements": ["PL", "部長"],
308
353
  "design": ["アーキテクト", "部長"],
309
354
  "release": ["SM", "部長"]
310
355
  }
@@ -314,7 +359,7 @@ Confluenceスペース
314
359
 
315
360
  ## 対話式設定ツール
316
361
 
317
- `.kiro/config.json`を対話的に作成・更新できます:
362
+ `.michi/config.json`を対話的に作成・更新できます:
318
363
 
319
364
  ```bash
320
365
  # 対話式設定ツールを実行
@@ -333,7 +378,7 @@ npm run config:interactive
333
378
  - ワークフロー設定のカスタマイズ
334
379
  3. **各設定を対話的に入力**: プロンプトに従って選択・入力
335
380
  4. **設定を確認**: 最終的な設定内容を確認
336
- 5. **保存**: 設定ファイルを`.kiro/config.json`に保存
381
+ 5. **保存**: 設定ファイルを`.michi/config.json`に保存
337
382
 
338
383
  ### 設定項目
339
384
 
@@ -341,7 +386,7 @@ npm run config:interactive
341
386
  - **ページタイトル形式**: カスタマイズ可能
342
387
  - **JIRA Story作成粒度**: 全作成/フェーズごと/選択フェーズのみ
343
388
  - **ワークフロー有効化フェーズ**: 要件定義/設計/タスク分割から選択
344
- - **承認ゲート**: 各フェーズの承認者を設定
389
+ - **承認者**: 各フェーズの承認者を設定
345
390
 
346
391
  ## 設定ファイルのバリデーション
347
392
 
@@ -408,7 +453,7 @@ npm run config:validate
408
453
 
409
454
  ### 設定ファイルが読み込まれない
410
455
 
411
- 1. `.kiro/config.json`がプロジェクトルートに存在するか確認
456
+ 1. `.michi/config.json`がプロジェクトルートに存在するか確認
412
457
  2. JSONの構文エラーがないか確認
413
458
  3. 設定ファイルのパスが正しいか確認
414
459
 
@@ -426,7 +471,14 @@ npm run config:validate
426
471
 
427
472
  ## 参考リンク
428
473
 
474
+ ### Michi関連
429
475
  - [セットアップガイド](./setup.md)
430
476
  - [ワークフローガイド](./workflow.md)
431
477
  - [新規プロジェクトセットアップ](./new-project-setup.md)
478
+ - [設定値リファレンス](./config-reference.md)
479
+
480
+ ### cc-sdd関連
481
+ - [cc-sdd カスタマイズガイド](https://github.com/gotalab/cc-sdd/blob/main/docs/guides/ja/customization-guide.md) - テンプレート・ルール・Steeringのカスタマイズ方法
482
+ - [cc-sdd コマンドリファレンス](https://github.com/gotalab/cc-sdd/blob/main/docs/guides/ja/command-reference.md) - `/kiro:steering-custom`などのコマンド詳細
483
+ - [cc-sdd Spec-Driven Guide](https://github.com/gotalab/cc-sdd/blob/main/docs/guides/ja/spec-driven.md) - 仕様駆動開発のワークフロー
432
484