@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.
Files changed (99) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +465 -0
  3. package/dist/scripts/config/config-schema.d.ts +707 -0
  4. package/dist/scripts/config/config-schema.d.ts.map +1 -0
  5. package/dist/scripts/config/config-schema.js +100 -0
  6. package/dist/scripts/config/config-schema.js.map +1 -0
  7. package/dist/scripts/config-interactive.d.ts +10 -0
  8. package/dist/scripts/config-interactive.d.ts.map +1 -0
  9. package/dist/scripts/config-interactive.js +357 -0
  10. package/dist/scripts/config-interactive.js.map +1 -0
  11. package/dist/scripts/confluence-sync.d.ts +54 -0
  12. package/dist/scripts/confluence-sync.d.ts.map +1 -0
  13. package/dist/scripts/confluence-sync.js +407 -0
  14. package/dist/scripts/confluence-sync.js.map +1 -0
  15. package/dist/scripts/create-project.d.ts +12 -0
  16. package/dist/scripts/create-project.d.ts.map +1 -0
  17. package/dist/scripts/create-project.js +244 -0
  18. package/dist/scripts/create-project.js.map +1 -0
  19. package/dist/scripts/jira-sync.d.ts +39 -0
  20. package/dist/scripts/jira-sync.d.ts.map +1 -0
  21. package/dist/scripts/jira-sync.js +549 -0
  22. package/dist/scripts/jira-sync.js.map +1 -0
  23. package/dist/scripts/list-projects.d.ts +7 -0
  24. package/dist/scripts/list-projects.d.ts.map +1 -0
  25. package/dist/scripts/list-projects.js +61 -0
  26. package/dist/scripts/list-projects.js.map +1 -0
  27. package/dist/scripts/markdown-to-confluence.d.ts +19 -0
  28. package/dist/scripts/markdown-to-confluence.d.ts.map +1 -0
  29. package/dist/scripts/markdown-to-confluence.js +121 -0
  30. package/dist/scripts/markdown-to-confluence.js.map +1 -0
  31. package/dist/scripts/multi-project-estimate.d.ts +27 -0
  32. package/dist/scripts/multi-project-estimate.d.ts.map +1 -0
  33. package/dist/scripts/multi-project-estimate.js +202 -0
  34. package/dist/scripts/multi-project-estimate.js.map +1 -0
  35. package/dist/scripts/phase-runner.d.ts +19 -0
  36. package/dist/scripts/phase-runner.d.ts.map +1 -0
  37. package/dist/scripts/phase-runner.js +260 -0
  38. package/dist/scripts/phase-runner.js.map +1 -0
  39. package/dist/scripts/pr-automation.d.ts +12 -0
  40. package/dist/scripts/pr-automation.d.ts.map +1 -0
  41. package/dist/scripts/pr-automation.js +45 -0
  42. package/dist/scripts/pr-automation.js.map +1 -0
  43. package/dist/scripts/pre-flight-check.d.ts +15 -0
  44. package/dist/scripts/pre-flight-check.d.ts.map +1 -0
  45. package/dist/scripts/pre-flight-check.js +244 -0
  46. package/dist/scripts/pre-flight-check.js.map +1 -0
  47. package/dist/scripts/resource-dashboard.d.ts +7 -0
  48. package/dist/scripts/resource-dashboard.d.ts.map +1 -0
  49. package/dist/scripts/resource-dashboard.js +100 -0
  50. package/dist/scripts/resource-dashboard.js.map +1 -0
  51. package/dist/scripts/setup-existing-project.d.ts +13 -0
  52. package/dist/scripts/setup-existing-project.d.ts.map +1 -0
  53. package/dist/scripts/setup-existing-project.js +334 -0
  54. package/dist/scripts/setup-existing-project.js.map +1 -0
  55. package/dist/scripts/utils/config-loader.d.ts +20 -0
  56. package/dist/scripts/utils/config-loader.d.ts.map +1 -0
  57. package/dist/scripts/utils/config-loader.js +291 -0
  58. package/dist/scripts/utils/config-loader.js.map +1 -0
  59. package/dist/scripts/utils/config-validator.d.ts +34 -0
  60. package/dist/scripts/utils/config-validator.d.ts.map +1 -0
  61. package/dist/scripts/utils/config-validator.js +286 -0
  62. package/dist/scripts/utils/config-validator.js.map +1 -0
  63. package/dist/scripts/utils/confluence-hierarchy.d.ts +47 -0
  64. package/dist/scripts/utils/confluence-hierarchy.d.ts.map +1 -0
  65. package/dist/scripts/utils/confluence-hierarchy.js +516 -0
  66. package/dist/scripts/utils/confluence-hierarchy.js.map +1 -0
  67. package/dist/scripts/utils/feature-name-validator.d.ts +25 -0
  68. package/dist/scripts/utils/feature-name-validator.d.ts.map +1 -0
  69. package/dist/scripts/utils/feature-name-validator.js +113 -0
  70. package/dist/scripts/utils/feature-name-validator.js.map +1 -0
  71. package/dist/scripts/utils/project-meta.d.ts +23 -0
  72. package/dist/scripts/utils/project-meta.d.ts.map +1 -0
  73. package/dist/scripts/utils/project-meta.js +50 -0
  74. package/dist/scripts/utils/project-meta.js.map +1 -0
  75. package/dist/scripts/validate-phase.d.ts +17 -0
  76. package/dist/scripts/validate-phase.d.ts.map +1 -0
  77. package/dist/scripts/validate-phase.js +234 -0
  78. package/dist/scripts/validate-phase.js.map +1 -0
  79. package/dist/scripts/workflow-orchestrator.d.ts +35 -0
  80. package/dist/scripts/workflow-orchestrator.d.ts.map +1 -0
  81. package/dist/scripts/workflow-orchestrator.js +130 -0
  82. package/dist/scripts/workflow-orchestrator.js.map +1 -0
  83. package/dist/src/cli.d.ts +11 -0
  84. package/dist/src/cli.d.ts.map +1 -0
  85. package/dist/src/cli.js +229 -0
  86. package/dist/src/cli.js.map +1 -0
  87. package/docs/config-reference.md +666 -0
  88. package/docs/customization-guide.md +432 -0
  89. package/docs/multi-project.md +233 -0
  90. package/docs/new-project-setup.md +576 -0
  91. package/docs/phase-automation.md +361 -0
  92. package/docs/quick-reference.md +291 -0
  93. package/docs/setup.md +404 -0
  94. package/docs/tasks-template.md +550 -0
  95. package/docs/testing.md +202 -0
  96. package/docs/workflow.md +342 -0
  97. package/env.example +44 -0
  98. package/mcp.json.example +14 -0
  99. package/package.json +97 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../../../scripts/config/config-schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,6BAA6B,iCAA+B,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,uCAAuC,+DAKlD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwB7C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUjC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kCAAkC,mDAI7C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB,2CAAyC,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI1B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACpF,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uCAAuC,CAAC,CAAC;AACxG,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAC9F,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAC9F,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * 設定スキーマ定義
3
+ * Zodを使用して設定ファイルの型安全性を保証
4
+ */
5
+ import { z } from 'zod';
6
+ /**
7
+ * Confluence階層構造のモード
8
+ */
9
+ export const ConfluenceHierarchyModeSchema = z.enum(['simple', 'nested']);
10
+ /**
11
+ * Confluenceページ作成粒度
12
+ */
13
+ export const ConfluencePageCreationGranularitySchema = z.enum([
14
+ 'single',
15
+ 'by-section',
16
+ 'by-hierarchy',
17
+ 'manual'
18
+ ]);
19
+ /**
20
+ * Confluence階層構造設定(by-hierarchyまたはmanualの場合)
21
+ */
22
+ export const ConfluenceHierarchyStructureSchema = z.object({
23
+ mode: ConfluenceHierarchyModeSchema.optional(),
24
+ parentPageTitle: z.string().optional(),
25
+ createDocTypeParents: z.boolean().optional(),
26
+ structure: z.record(z.string(), z.object({
27
+ parent: z.string().optional(),
28
+ title: z.string().optional(),
29
+ children: z.array(z.object({
30
+ section: z.string(),
31
+ title: z.string()
32
+ })).optional(),
33
+ pages: z.array(z.object({
34
+ title: z.string(),
35
+ sections: z.array(z.string()),
36
+ labels: z.array(z.string()).optional()
37
+ })).optional()
38
+ })).optional()
39
+ });
40
+ /**
41
+ * Confluence設定スキーマ
42
+ */
43
+ export const ConfluenceConfigSchema = z.object({
44
+ pageCreationGranularity: ConfluencePageCreationGranularitySchema.default('single'),
45
+ pageTitleFormat: z.string().default('[{projectName}] {featureName} {docTypeLabel}'),
46
+ autoLabels: z.array(z.string()).default(['{projectLabel}', '{docType}', '{featureName}', 'github-sync']),
47
+ spaces: z.object({
48
+ requirements: z.string().optional(),
49
+ design: z.string().optional(),
50
+ tasks: z.string().optional()
51
+ }).optional(),
52
+ hierarchy: ConfluenceHierarchyStructureSchema.optional()
53
+ });
54
+ /**
55
+ * JIRA Story作成粒度
56
+ */
57
+ export const JiraStoryCreationGranularitySchema = z.enum([
58
+ 'all',
59
+ 'by-phase',
60
+ 'selected-phases'
61
+ ]);
62
+ /**
63
+ * JIRA Story Points設定
64
+ */
65
+ export const JiraStoryPointsSchema = z.enum(['auto', 'manual', 'disabled']);
66
+ /**
67
+ * JIRA設定スキーマ
68
+ */
69
+ export const JiraConfigSchema = z.object({
70
+ storyCreationGranularity: JiraStoryCreationGranularitySchema.default('all'),
71
+ createEpic: z.boolean().default(true),
72
+ storyPoints: JiraStoryPointsSchema.default('auto'),
73
+ autoLabels: z.array(z.string()).default(['{projectLabel}', '{featureName}', '{phaseLabel}']),
74
+ issueTypes: z.object({
75
+ epic: z.string().default('Epic'),
76
+ story: z.string().nullish().default(null), // null | undefined | string
77
+ subtask: z.string().nullish().default(null) // null | undefined | string
78
+ }).optional(),
79
+ selectedPhases: z.array(z.string()).optional()
80
+ });
81
+ /**
82
+ * ワークフロー設定スキーマ
83
+ */
84
+ export const WorkflowConfigSchema = z.object({
85
+ enabledPhases: z.array(z.string()).default(['requirements', 'design', 'tasks']),
86
+ approvalGates: z.object({
87
+ requirements: z.array(z.string()).optional(),
88
+ design: z.array(z.string()).optional(),
89
+ release: z.array(z.string()).optional()
90
+ }).optional()
91
+ });
92
+ /**
93
+ * 全体設定スキーマ
94
+ */
95
+ export const AppConfigSchema = z.object({
96
+ confluence: ConfluenceConfigSchema.optional(),
97
+ jira: JiraConfigSchema.optional(),
98
+ workflow: WorkflowConfigSchema.optional()
99
+ });
100
+ //# sourceMappingURL=config-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../../../scripts/config/config-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * 対話式設定ツール
3
+ * .kiro/config.json を対話的に作成・更新
4
+ */
5
+ /**
6
+ * メイン処理
7
+ */
8
+ declare function main(): Promise<void>;
9
+ export { main as configInteractive };
10
+ //# sourceMappingURL=config-interactive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-interactive.d.ts","sourceRoot":"","sources":["../../scripts/config-interactive.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA2WH;;GAEG;AACH,iBAAe,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAiHnC;AAUD,OAAO,EAAE,IAAI,IAAI,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,357 @@
1
+ /**
2
+ * 対話式設定ツール
3
+ * .kiro/config.json を対話的に作成・更新
4
+ */
5
+ import { readFileSync, writeFileSync, existsSync } from 'fs';
6
+ import { resolve } from 'path';
7
+ import * as readline from 'readline';
8
+ import { loadProjectMeta } from './utils/project-meta.js';
9
+ import { validateProjectConfig } from './utils/config-validator.js';
10
+ /**
11
+ * readlineインターフェースを作成
12
+ */
13
+ function createInterface() {
14
+ return readline.createInterface({
15
+ input: process.stdin,
16
+ output: process.stdout
17
+ });
18
+ }
19
+ /**
20
+ * 質問を表示して回答を取得
21
+ */
22
+ function question(rl, query) {
23
+ return new Promise(resolve => {
24
+ rl.question(query, answer => {
25
+ resolve(answer.trim());
26
+ });
27
+ });
28
+ }
29
+ /**
30
+ * 選択肢から選択
31
+ */
32
+ async function select(rl, prompt, choices, defaultValue, maxRetries = 3) {
33
+ console.log(`\n${prompt}`);
34
+ choices.forEach((choice, index) => {
35
+ const defaultMark = defaultValue === choice.value ? ' (デフォルト)' : '';
36
+ const desc = choice.description ? ` - ${choice.description}` : '';
37
+ console.log(` ${index + 1}. ${choice.label}${desc}${defaultMark}`);
38
+ });
39
+ const answer = await question(rl, `\n選択してください [1-${choices.length}]: `);
40
+ if (!answer && defaultValue) {
41
+ return defaultValue;
42
+ }
43
+ const index = parseInt(answer, 10) - 1;
44
+ if (index >= 0 && index < choices.length) {
45
+ return choices[index].value;
46
+ }
47
+ if (defaultValue) {
48
+ return defaultValue;
49
+ }
50
+ // 無効な入力の場合は再試行(最大試行回数まで)
51
+ if (maxRetries > 0) {
52
+ console.log(`⚠️ 無効な選択です。もう一度入力してください(残り試行回数: ${maxRetries})。`);
53
+ return select(rl, prompt, choices, defaultValue, maxRetries - 1);
54
+ }
55
+ // 最大試行回数に達した場合はデフォルト値または最初の選択肢を返す
56
+ console.log(`⚠️ 最大試行回数に達しました。デフォルト値を使用します: ${defaultValue || choices[0].value}`);
57
+ return defaultValue || choices[0].value;
58
+ }
59
+ /**
60
+ * Yes/No質問
61
+ */
62
+ async function confirm(rl, prompt, defaultValue = true) {
63
+ const defaultText = defaultValue ? '[Y/n]' : '[y/N]';
64
+ const answer = await question(rl, `${prompt} ${defaultText}: `);
65
+ if (!answer) {
66
+ return defaultValue;
67
+ }
68
+ return answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes';
69
+ }
70
+ /**
71
+ * 複数選択
72
+ */
73
+ async function multiSelect(rl, prompt, choices, defaults = []) {
74
+ console.log(`\n${prompt}`);
75
+ choices.forEach((choice, index) => {
76
+ const checked = defaults.includes(choice.value) ? '[x]' : '[ ]';
77
+ console.log(` ${checked} ${index + 1}. ${choice.label}`);
78
+ });
79
+ const answer = await question(rl, `\n選択してください(カンマ区切り、例: 1,2,3): `);
80
+ if (!answer && defaults.length > 0) {
81
+ return defaults;
82
+ }
83
+ if (!answer) {
84
+ return [];
85
+ }
86
+ const indices = answer.split(',').map(s => parseInt(s.trim(), 10) - 1).filter(i => i >= 0 && i < choices.length);
87
+ return indices.map(i => choices[i].value);
88
+ }
89
+ /**
90
+ * Confluence設定を対話的に取得
91
+ */
92
+ async function getConfluenceConfig(rl, projectMeta) {
93
+ console.log('\n📄 Confluence設定');
94
+ console.log('='.repeat(60));
95
+ const granularityChoices = [
96
+ {
97
+ value: 'single',
98
+ label: 'single(1ドキュメント = 1ページ)',
99
+ description: 'デフォルト・現在の動作'
100
+ },
101
+ {
102
+ value: 'by-section',
103
+ label: 'by-section(セクションごとにページ分割)',
104
+ description: '## セクションごとにページを作成'
105
+ },
106
+ {
107
+ value: 'by-hierarchy',
108
+ label: 'by-hierarchy(階層構造)',
109
+ description: '親ページ + 子ページの階層構造'
110
+ },
111
+ {
112
+ value: 'manual',
113
+ label: 'manual(手動指定)',
114
+ description: '設定ファイルで明示的に指定'
115
+ }
116
+ ];
117
+ const granularity = await select(rl, 'ページ作成粒度を選択してください:', granularityChoices, 'single');
118
+ const config = {
119
+ pageCreationGranularity: granularity
120
+ };
121
+ // タイトル形式のカスタマイズ
122
+ const customTitle = await confirm(rl, 'ページタイトル形式をカスタマイズしますか?', false);
123
+ if (customTitle) {
124
+ const titleFormat = await question(rl, 'タイトル形式を入力してください(例: {projectName} - {featureName}): ');
125
+ if (titleFormat) {
126
+ config.pageTitleFormat = titleFormat;
127
+ }
128
+ }
129
+ // 階層構造設定
130
+ if (granularity === 'by-hierarchy' || granularity === 'manual') {
131
+ config.hierarchy = {};
132
+ if (granularity === 'by-hierarchy') {
133
+ const modeChoices = [
134
+ {
135
+ value: 'simple',
136
+ label: 'simple(親ページ + ドキュメントタイプ子ページ)',
137
+ description: '2階層構造'
138
+ },
139
+ {
140
+ value: 'nested',
141
+ label: 'nested(親ページ → ドキュメントタイプ親 → セクション子ページ)',
142
+ description: '3階層構造'
143
+ }
144
+ ];
145
+ const mode = await select(rl, '階層構造のモードを選択してください:', modeChoices, 'simple');
146
+ config.hierarchy.mode = mode;
147
+ }
148
+ const parentTitle = await question(rl, `親ページのタイトル形式を入力してください(例: [{projectName}] {featureName}): `);
149
+ if (parentTitle) {
150
+ config.hierarchy.parentPageTitle = parentTitle;
151
+ }
152
+ else {
153
+ config.hierarchy.parentPageTitle = `[{projectName}] {featureName}`;
154
+ }
155
+ if (granularity === 'manual') {
156
+ console.log('\n⚠️ manualモードでは、設定ファイルを手動で編集する必要があります。');
157
+ console.log(' hierarchy.structure に各ドキュメントタイプのページ構造を定義してください。');
158
+ }
159
+ }
160
+ return config;
161
+ }
162
+ /**
163
+ * JIRA設定を対話的に取得
164
+ */
165
+ async function getJiraConfig(rl) {
166
+ console.log('\n📋 JIRA設定');
167
+ console.log('='.repeat(60));
168
+ const createEpic = await confirm(rl, 'Epicを作成しますか?', true);
169
+ const granularityChoices = [
170
+ {
171
+ value: 'all',
172
+ label: 'all(全Storyを作成)',
173
+ description: 'デフォルト'
174
+ },
175
+ {
176
+ value: 'by-phase',
177
+ label: 'by-phase(フェーズごとに作成)',
178
+ description: 'Phase 0-5を個別に作成'
179
+ },
180
+ {
181
+ value: 'selected-phases',
182
+ label: 'selected-phases(指定フェーズのみ)',
183
+ description: '選択したフェーズのみ作成'
184
+ }
185
+ ];
186
+ const granularity = await select(rl, 'Story作成粒度を選択してください:', granularityChoices, 'all');
187
+ const config = {
188
+ createEpic,
189
+ storyCreationGranularity: granularity
190
+ };
191
+ if (granularity === 'selected-phases') {
192
+ const phaseChoices = [
193
+ { value: 'requirements', label: '要件定義(Requirements)' },
194
+ { value: 'design', label: '設計(Design)' },
195
+ { value: 'implementation', label: '実装(Implementation)' },
196
+ { value: 'testing', label: '試験(Testing)' },
197
+ { value: 'release-prep', label: 'リリース準備(Release Preparation)' },
198
+ { value: 'release', label: 'リリース(Release)' }
199
+ ];
200
+ const selectedPhases = await multiSelect(rl, '作成するフェーズを選択してください:', phaseChoices, ['implementation', 'testing']);
201
+ config.selectedPhases = selectedPhases;
202
+ }
203
+ const storyPointsChoices = [
204
+ { value: 'auto', label: 'auto(自動抽出)', description: 'デフォルト' },
205
+ { value: 'manual', label: 'manual(手動設定)' },
206
+ { value: 'disabled', label: 'disabled(設定しない)' }
207
+ ];
208
+ const storyPoints = await select(rl, 'Story Points設定を選択してください:', storyPointsChoices, 'auto');
209
+ config.storyPoints = storyPoints;
210
+ return config;
211
+ }
212
+ /**
213
+ * ワークフロー設定を対話的に取得
214
+ */
215
+ async function getWorkflowConfig(rl) {
216
+ console.log('\n⚙️ ワークフロー設定');
217
+ console.log('='.repeat(60));
218
+ const phaseChoices = [
219
+ { value: 'requirements', label: '要件定義(Requirements)' },
220
+ { value: 'design', label: '設計(Design)' },
221
+ { value: 'tasks', label: 'タスク分割(Tasks)' }
222
+ ];
223
+ const enabledPhases = await multiSelect(rl, '有効化するフェーズを選択してください:', phaseChoices, ['requirements', 'design', 'tasks']);
224
+ const config = {
225
+ enabledPhases
226
+ };
227
+ const customApprovalGates = await confirm(rl, '承認ゲートをカスタマイズしますか?', false);
228
+ if (customApprovalGates) {
229
+ config.approvalGates = {};
230
+ if (enabledPhases.includes('requirements')) {
231
+ const approvers = await question(rl, '要件定義フェーズの承認者(カンマ区切り、例: pm,director): ');
232
+ if (approvers) {
233
+ config.approvalGates.requirements = approvers.split(',').map(s => s.trim());
234
+ }
235
+ }
236
+ if (enabledPhases.includes('design')) {
237
+ const approvers = await question(rl, '設計フェーズの承認者(カンマ区切り、例: architect,director): ');
238
+ if (approvers) {
239
+ config.approvalGates.design = approvers.split(',').map(s => s.trim());
240
+ }
241
+ }
242
+ const releaseApprovers = await question(rl, 'リリースフェーズの承認者(カンマ区切り、例: sm,director): ');
243
+ if (releaseApprovers) {
244
+ config.approvalGates.release = releaseApprovers.split(',').map(s => s.trim());
245
+ }
246
+ }
247
+ return config;
248
+ }
249
+ /**
250
+ * メイン処理
251
+ */
252
+ async function main() {
253
+ const rl = createInterface();
254
+ try {
255
+ console.log('🎨 Michi カスタマイズ設定ツール');
256
+ console.log('='.repeat(60));
257
+ console.log('このツールで .kiro/config.json を作成・更新できます。\n');
258
+ // プロジェクトメタデータを読み込み
259
+ let projectMeta;
260
+ try {
261
+ projectMeta = loadProjectMeta();
262
+ console.log(`📦 プロジェクト: ${projectMeta.projectName} (${projectMeta.projectId})\n`);
263
+ }
264
+ catch (error) {
265
+ console.error('❌ プロジェクトメタデータが見つかりません。');
266
+ console.error(' .kiro/project.json が存在するか確認してください。');
267
+ process.exit(1);
268
+ }
269
+ // 既存の設定ファイルを確認
270
+ const configPath = resolve(process.cwd(), '.kiro/config.json');
271
+ let existingConfig = null;
272
+ if (existsSync(configPath)) {
273
+ console.log('⚠️ 既存の設定ファイルが見つかりました。');
274
+ const overwrite = await confirm(rl, '上書きしますか?', false);
275
+ if (!overwrite) {
276
+ console.log('中止しました。');
277
+ process.exit(0);
278
+ }
279
+ try {
280
+ const content = readFileSync(configPath, 'utf-8');
281
+ existingConfig = JSON.parse(content);
282
+ console.log('既存の設定を読み込みました。\n');
283
+ }
284
+ catch (error) {
285
+ console.log('既存の設定ファイルの読み込みに失敗しました。新規作成します。\n');
286
+ }
287
+ }
288
+ // 設定を対話的に取得
289
+ const config = existingConfig || {};
290
+ // Confluence設定
291
+ const configureConfluence = await confirm(rl, 'Confluence設定をカスタマイズしますか?', false);
292
+ if (configureConfluence) {
293
+ config.confluence = await getConfluenceConfig(rl, projectMeta);
294
+ }
295
+ // JIRA設定
296
+ const configureJira = await confirm(rl, 'JIRA設定をカスタマイズしますか?', false);
297
+ if (configureJira) {
298
+ config.jira = await getJiraConfig(rl);
299
+ }
300
+ // ワークフロー設定
301
+ const configureWorkflow = await confirm(rl, 'ワークフロー設定をカスタマイズしますか?', false);
302
+ if (configureWorkflow) {
303
+ config.workflow = await getWorkflowConfig(rl);
304
+ }
305
+ // 設定の確認
306
+ console.log('\n📋 設定内容の確認');
307
+ console.log('='.repeat(60));
308
+ console.log(JSON.stringify(config, null, 2));
309
+ console.log('');
310
+ const confirmSave = await confirm(rl, 'この設定を保存しますか?', true);
311
+ if (!confirmSave) {
312
+ console.log('保存をキャンセルしました。');
313
+ process.exit(0);
314
+ }
315
+ // 設定ファイルを保存
316
+ writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n', 'utf-8');
317
+ console.log(`\n✅ 設定ファイルを保存しました: ${configPath}`);
318
+ // バリデーション
319
+ console.log('\n🔍 設定ファイルのバリデーション...');
320
+ const validation = validateProjectConfig();
321
+ if (validation.info.length > 0) {
322
+ console.log('ℹ️ Info:');
323
+ validation.info.forEach(msg => console.log(` - ${msg}`));
324
+ }
325
+ if (validation.warnings.length > 0) {
326
+ console.log('⚠️ Warnings:');
327
+ validation.warnings.forEach(warning => console.log(` - ${warning}`));
328
+ }
329
+ if (validation.errors.length > 0) {
330
+ console.error('❌ Validation errors:');
331
+ validation.errors.forEach(error => console.error(` - ${error}`));
332
+ console.error('\n設定ファイルにエラーがあります。手動で修正してください。');
333
+ process.exit(1);
334
+ }
335
+ if (validation.valid) {
336
+ console.log('✅ 設定ファイルは有効です。');
337
+ }
338
+ console.log('\n🎉 設定が完了しました!');
339
+ console.log(' 次回のConfluence/JIRA同期時に、この設定が適用されます。');
340
+ }
341
+ catch (error) {
342
+ console.error('❌ エラーが発生しました:', error instanceof Error ? error.message : error);
343
+ process.exit(1);
344
+ }
345
+ finally {
346
+ rl.close();
347
+ }
348
+ }
349
+ // CLI実行
350
+ if (import.meta.url === `file://${process.argv[1]}`) {
351
+ main().catch(error => {
352
+ console.error('❌ 予期しないエラー:', error);
353
+ process.exit(1);
354
+ });
355
+ }
356
+ export { main as configInteractive };
357
+ //# sourceMappingURL=config-interactive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-interactive.js","sourceRoot":"","sources":["../../scripts/config-interactive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Confluence同期スクリプト
3
+ * GitHub の Markdown ファイルを Confluence に同期
4
+ */
5
+ interface ConfluenceConfig {
6
+ url: string;
7
+ email: string;
8
+ apiToken: string;
9
+ space: string;
10
+ }
11
+ /**
12
+ * Confluence REST API クライアント
13
+ */
14
+ declare class ConfluenceClient {
15
+ private baseUrl;
16
+ private auth;
17
+ private requestDelay;
18
+ constructor(config: ConfluenceConfig);
19
+ /**
20
+ * ページを検索
21
+ * @param spaceKey スペースキー
22
+ * @param title ページタイトル
23
+ * @param parentId 親ページID(オプション)。指定された場合、その親ページの子ページのみを検索
24
+ */
25
+ searchPage(spaceKey: string, title: string, parentId?: string): Promise<any | null>;
26
+ /**
27
+ * ページを作成
28
+ */
29
+ createPage(spaceKey: string, title: string, content: string, labels?: string[], parentId?: string): Promise<any>;
30
+ /**
31
+ * 親ページの下に子ページを作成
32
+ */
33
+ createPageUnderParent(spaceKey: string, title: string, content: string, labels: string[] | undefined, parentId: string): Promise<any>;
34
+ /**
35
+ * ページを更新
36
+ */
37
+ updatePage(pageId: string, title: string, content: string, version: number): Promise<any>;
38
+ /**
39
+ * ページの親情報を取得
40
+ * @param pageId ページID
41
+ * @returns 親ページID(ルートページの場合はnull)
42
+ */
43
+ getPageParentId(pageId: string): Promise<string | null>;
44
+ /**
45
+ * ページのラベルを追加
46
+ */
47
+ addLabels(pageId: string, labels: string[]): Promise<void>;
48
+ }
49
+ /**
50
+ * Markdownファイルを Confluence に同期
51
+ */
52
+ declare function syncToConfluence(featureName: string, docType?: 'requirements' | 'design' | 'tasks'): Promise<string>;
53
+ export { syncToConfluence, ConfluenceClient };
54
+ //# sourceMappingURL=confluence-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confluence-sync.d.ts","sourceRoot":"","sources":["../../scripts/confluence-sync.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA+BH,UAAU,gBAAgB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAkBD;;GAEG;AACH,cAAM,gBAAgB;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,YAAY,CAAS;gBAEjB,MAAM,EAAE,gBAAgB;IAMpC;;;;;OAKG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAmFzF;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,EAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAkC1H;;OAEG;IACG,qBAAqB,CACzB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EAAE,YAAK,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,GAAG,CAAC;IAIf;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA0B/F;;;;OAIG;IACG,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAgD7D;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAiBjE;AAwBD;;GAEG;AACH,iBAAe,gBAAgB,CAC7B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,cAAc,GAAG,QAAQ,GAAG,OAAwB,GAC5D,OAAO,CAAC,MAAM,CAAC,CAiHjB;AA8CD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC"}