@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,260 @@
1
+ /**
2
+ * フェーズランナー
3
+ * 各フェーズを実行し、Confluence/JIRA作成を確実に実行
4
+ */
5
+ import { existsSync } from 'fs';
6
+ import { join } from 'path';
7
+ import { syncToConfluence } from './confluence-sync.js';
8
+ import { syncTasksToJIRA } from './jira-sync.js';
9
+ import { validatePhase } from './validate-phase.js';
10
+ import { runPreFlightCheck } from './pre-flight-check.js';
11
+ import { validateFeatureNameOrThrow } from './utils/feature-name-validator.js';
12
+ /**
13
+ * 要件定義フェーズを実行
14
+ */
15
+ async function runRequirementsPhase(feature) {
16
+ console.log('\n📋 Phase: Requirements(要件定義)');
17
+ console.log('='.repeat(60));
18
+ const errors = [];
19
+ let confluenceCreated = false;
20
+ let confluenceUrl = null;
21
+ // Step 1: requirements.md存在確認
22
+ const requirementsPath = join(process.cwd(), '.kiro', 'specs', feature, 'requirements.md');
23
+ if (!existsSync(requirementsPath)) {
24
+ errors.push('requirements.mdが存在しません。先に/kiro:spec-requirements を実行してください');
25
+ return {
26
+ phase: 'requirements',
27
+ success: false,
28
+ confluenceCreated: false,
29
+ jiraCreated: false,
30
+ validationPassed: false,
31
+ errors
32
+ };
33
+ }
34
+ console.log('✅ requirements.md 存在確認');
35
+ // Step 2: Confluenceページ作成
36
+ console.log('\n📤 Confluenceページ作成中...');
37
+ try {
38
+ confluenceUrl = await syncToConfluence(feature, 'requirements');
39
+ confluenceCreated = true;
40
+ console.log('✅ Confluenceページ作成成功');
41
+ }
42
+ catch (error) {
43
+ errors.push(`Confluenceページ作成失敗: ${error.message}`);
44
+ console.error('❌ Confluenceページ作成失敗:', error.message);
45
+ }
46
+ // Step 3: バリデーション
47
+ console.log('\n🔍 バリデーション実行中...');
48
+ const validation = validatePhase(feature, 'requirements');
49
+ errors.push(...validation.errors);
50
+ // Step 4: 結果サマリー
51
+ console.log('\n' + '='.repeat(60));
52
+ console.log('📊 要件定義フェーズ完了チェック:');
53
+ console.log(' ✅ requirements.md: 作成済み');
54
+ console.log(` ${confluenceCreated ? '✅' : '❌'} Confluenceページ: ${confluenceCreated ? '作成済み' : '未作成'}`);
55
+ console.log(` ${validation.valid ? '✅' : '❌'} バリデーション: ${validation.valid ? '成功' : '失敗'}`);
56
+ if (validation.valid && confluenceCreated) {
57
+ console.log('\n🎉 要件定義フェーズが完了しました!');
58
+ console.log('📢 PMや部長にConfluenceでレビューを依頼してください');
59
+ if (confluenceUrl) {
60
+ console.log(`📄 Confluence: ${confluenceUrl}`);
61
+ }
62
+ else {
63
+ const baseUrl = process.env.ATLASSIAN_URL || 'https://your-site.atlassian.net';
64
+ console.log(`📄 Confluence: ${baseUrl}/wiki/spaces/(URLは上記のログを参照)`);
65
+ }
66
+ }
67
+ return {
68
+ phase: 'requirements',
69
+ success: validation.valid && confluenceCreated,
70
+ confluenceCreated,
71
+ jiraCreated: false,
72
+ validationPassed: validation.valid,
73
+ errors
74
+ };
75
+ }
76
+ /**
77
+ * 設計フェーズを実行
78
+ */
79
+ async function runDesignPhase(feature) {
80
+ console.log('\n🏗️ Phase: Design(設計)');
81
+ console.log('='.repeat(60));
82
+ const errors = [];
83
+ let confluenceCreated = false;
84
+ let confluenceUrl = null;
85
+ // Step 1: design.md存在確認
86
+ const designPath = join(process.cwd(), '.kiro', 'specs', feature, 'design.md');
87
+ if (!existsSync(designPath)) {
88
+ errors.push('design.mdが存在しません。先に/kiro:spec-design を実行してください');
89
+ return {
90
+ phase: 'design',
91
+ success: false,
92
+ confluenceCreated: false,
93
+ jiraCreated: false,
94
+ validationPassed: false,
95
+ errors
96
+ };
97
+ }
98
+ console.log('✅ design.md 存在確認');
99
+ // Step 2: Confluenceページ作成
100
+ console.log('\n📤 Confluenceページ作成中...');
101
+ try {
102
+ confluenceUrl = await syncToConfluence(feature, 'design');
103
+ confluenceCreated = true;
104
+ console.log('✅ Confluenceページ作成成功');
105
+ }
106
+ catch (error) {
107
+ errors.push(`Confluenceページ作成失敗: ${error.message}`);
108
+ console.error('❌ Confluenceページ作成失敗:', error.message);
109
+ }
110
+ // Step 3: バリデーション
111
+ console.log('\n🔍 バリデーション実行中...');
112
+ const validation = validatePhase(feature, 'design');
113
+ errors.push(...validation.errors);
114
+ // Step 4: 結果サマリー
115
+ console.log('\n' + '='.repeat(60));
116
+ console.log('📊 設計フェーズ完了チェック:');
117
+ console.log(' ✅ design.md: 作成済み');
118
+ console.log(` ${confluenceCreated ? '✅' : '❌'} Confluenceページ: ${confluenceCreated ? '作成済み' : '未作成'}`);
119
+ console.log(` ${validation.valid ? '✅' : '❌'} バリデーション: ${validation.valid ? '成功' : '失敗'}`);
120
+ if (validation.valid && confluenceCreated) {
121
+ console.log('\n🎉 設計フェーズが完了しました!');
122
+ console.log('📢 PMや部長にConfluenceでレビューを依頼してください');
123
+ if (confluenceUrl) {
124
+ console.log(`📄 Confluence: ${confluenceUrl}`);
125
+ }
126
+ else {
127
+ const baseUrl = process.env.ATLASSIAN_URL || 'https://your-site.atlassian.net';
128
+ console.log(`📄 Confluence: ${baseUrl}/wiki/spaces/(URLは上記のログを参照)`);
129
+ }
130
+ }
131
+ return {
132
+ phase: 'design',
133
+ success: validation.valid && confluenceCreated,
134
+ confluenceCreated,
135
+ jiraCreated: false,
136
+ validationPassed: validation.valid,
137
+ errors
138
+ };
139
+ }
140
+ /**
141
+ * タスク分割フェーズを実行
142
+ */
143
+ async function runTasksPhase(feature) {
144
+ console.log('\n📝 Phase: Tasks(タスク分割)');
145
+ console.log('='.repeat(60));
146
+ const errors = [];
147
+ let jiraCreated = false;
148
+ // Step 0: プリフライトチェック
149
+ console.log('\n🔍 プリフライトチェック...');
150
+ const preFlightResult = await runPreFlightCheck('jira');
151
+ if (!preFlightResult.valid) {
152
+ console.log('\n❌ プリフライトチェック失敗:');
153
+ preFlightResult.errors.forEach(e => console.log(` ${e}`));
154
+ return {
155
+ phase: 'tasks',
156
+ success: false,
157
+ confluenceCreated: false,
158
+ jiraCreated: false,
159
+ validationPassed: false,
160
+ errors: preFlightResult.errors
161
+ };
162
+ }
163
+ console.log('✅ プリフライトチェック成功');
164
+ // Step 1: tasks.md存在確認
165
+ const tasksPath = join(process.cwd(), '.kiro', 'specs', feature, 'tasks.md');
166
+ if (!existsSync(tasksPath)) {
167
+ errors.push('tasks.mdが存在しません。先に/kiro:spec-tasks を実行してください');
168
+ return {
169
+ phase: 'tasks',
170
+ success: false,
171
+ confluenceCreated: false,
172
+ jiraCreated: false,
173
+ validationPassed: false,
174
+ errors
175
+ };
176
+ }
177
+ console.log('✅ tasks.md 存在確認');
178
+ // Step 2: JIRA Epic/Story作成
179
+ console.log('\n📤 JIRA Epic/Story作成中...');
180
+ try {
181
+ await syncTasksToJIRA(feature);
182
+ jiraCreated = true;
183
+ console.log('✅ JIRA Epic/Story作成成功');
184
+ }
185
+ catch (error) {
186
+ errors.push(`JIRA作成失敗: ${error.message}`);
187
+ console.error('❌ JIRA作成失敗:', error.message);
188
+ }
189
+ // Step 3: バリデーション
190
+ console.log('\n🔍 バリデーション実行中...');
191
+ const validation = validatePhase(feature, 'tasks');
192
+ errors.push(...validation.errors);
193
+ // Step 4: 結果サマリー
194
+ console.log('\n' + '='.repeat(60));
195
+ console.log('📊 タスク分割フェーズ完了チェック:');
196
+ console.log(' ✅ tasks.md: 作成済み');
197
+ console.log(` ${jiraCreated ? '✅' : '❌'} JIRA Epic/Story: ${jiraCreated ? '作成済み' : '未作成'}`);
198
+ console.log(` ${validation.valid ? '✅' : '❌'} バリデーション: ${validation.valid ? '成功' : '失敗'}`);
199
+ if (validation.valid && jiraCreated) {
200
+ console.log('\n🎉 タスク分割フェーズが完了しました!');
201
+ console.log('📢 開発チームに実装開始を通知してください');
202
+ console.log('🚀 次のステップ: /kiro:spec-impl <feature>');
203
+ }
204
+ return {
205
+ phase: 'tasks',
206
+ success: validation.valid && jiraCreated,
207
+ confluenceCreated: false,
208
+ jiraCreated,
209
+ validationPassed: validation.valid,
210
+ errors
211
+ };
212
+ }
213
+ /**
214
+ * フェーズを実行
215
+ */
216
+ export async function runPhase(feature, phase) {
217
+ // feature名のバリデーション(必須)
218
+ validateFeatureNameOrThrow(feature);
219
+ switch (phase) {
220
+ case 'requirements':
221
+ return await runRequirementsPhase(feature);
222
+ case 'design':
223
+ return await runDesignPhase(feature);
224
+ case 'tasks':
225
+ return await runTasksPhase(feature);
226
+ default:
227
+ throw new Error(`Unknown phase: ${phase}`);
228
+ }
229
+ }
230
+ // CLI実行
231
+ if (import.meta.url === `file://${process.argv[1]}`) {
232
+ const args = process.argv.slice(2);
233
+ if (args.length < 2) {
234
+ console.error('Usage: npm run phase:run <feature> <phase>');
235
+ console.error('Example: npm run phase:run calculator-app requirements');
236
+ console.error('Phases: requirements, design, tasks');
237
+ process.exit(1);
238
+ }
239
+ const [feature, phase] = args;
240
+ if (!['requirements', 'design', 'tasks'].includes(phase)) {
241
+ console.error('Invalid phase. Must be: requirements, design, or tasks');
242
+ process.exit(1);
243
+ }
244
+ runPhase(feature, phase)
245
+ .then((result) => {
246
+ if (result.success) {
247
+ console.log('\n✅ フェーズ完了');
248
+ process.exit(0);
249
+ }
250
+ else {
251
+ console.log('\n❌ フェーズ未完了(エラーを確認してください)');
252
+ process.exit(1);
253
+ }
254
+ })
255
+ .catch((error) => {
256
+ console.error(`\n❌ フェーズ実行エラー: ${error.message}`);
257
+ process.exit(1);
258
+ });
259
+ }
260
+ //# sourceMappingURL=phase-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase-runner.js","sourceRoot":"","sources":["../../scripts/phase-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * GitHub PR自動化スクリプト
3
+ */
4
+ interface PROptions {
5
+ branch: string;
6
+ title: string;
7
+ body: string;
8
+ base?: string;
9
+ }
10
+ declare function createPR(options: PROptions): Promise<void>;
11
+ export { createPR };
12
+ //# sourceMappingURL=pr-automation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr-automation.d.ts","sourceRoot":"","sources":["../../scripts/pr-automation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,UAAU,SAAS;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,iBAAe,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBzD;AAuBD,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * GitHub PR自動化スクリプト
3
+ */
4
+ import { Octokit } from '@octokit/rest';
5
+ import { config } from 'dotenv';
6
+ config();
7
+ async function createPR(options) {
8
+ const token = process.env.GITHUB_TOKEN;
9
+ const repo = process.env.GITHUB_REPO;
10
+ if (!token || !repo) {
11
+ throw new Error('Missing GitHub credentials');
12
+ }
13
+ const [owner, repoName] = repo.split('/');
14
+ const octokit = new Octokit({ auth: token });
15
+ const { branch, title, body, base = 'main' } = options;
16
+ console.log(`Creating PR: ${title}`);
17
+ const pr = await octokit.pulls.create({
18
+ owner,
19
+ repo: repoName,
20
+ title,
21
+ body,
22
+ head: branch,
23
+ base
24
+ });
25
+ console.log(`✅ PR created: ${pr.data.html_url}`);
26
+ }
27
+ // CLI実行
28
+ if (import.meta.url === `file://${process.argv[1]}`) {
29
+ const args = process.argv.slice(2);
30
+ if (args.length === 0) {
31
+ console.error('Usage: npm run github:create-pr <branch> [title]');
32
+ process.exit(1);
33
+ }
34
+ const branch = args[0];
35
+ const title = args[1] || `feat: ${branch}`;
36
+ const body = 'Auto-generated PR';
37
+ createPR({ branch, title, body })
38
+ .then(() => process.exit(0))
39
+ .catch((error) => {
40
+ console.error('❌ PR creation failed:', error.message);
41
+ process.exit(1);
42
+ });
43
+ }
44
+ export { createPR };
45
+ //# sourceMappingURL=pr-automation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr-automation.js","sourceRoot":"","sources":["../../scripts/pr-automation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,MAAM,EAAE,CAAC;AAST,KAAK,UAAU,QAAQ,CAAC,OAAkB;IACxC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACvC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IAErC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAE7C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;IAEvD,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,EAAE,CAAC,CAAC;IAErC,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;QACpC,KAAK;QACL,IAAI,EAAE,QAAQ;QACd,KAAK;QACL,IAAI;QACJ,IAAI,EAAE,MAAM;QACZ,IAAI;KACL,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,QAAQ;AACR,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACpD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC;IAC3C,MAAM,IAAI,GAAG,mBAAmB,CAAC;IAEjC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SAC9B,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC3B,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * プリフライトチェック
3
+ * スクリプト実行前に必要な設定が揃っているか確認
4
+ */
5
+ interface PreFlightResult {
6
+ valid: boolean;
7
+ errors: string[];
8
+ warnings: string[];
9
+ }
10
+ /**
11
+ * プリフライトチェック実行
12
+ */
13
+ export declare function runPreFlightCheck(phase: 'confluence' | 'jira' | 'all'): Promise<PreFlightResult>;
14
+ export {};
15
+ //# sourceMappingURL=pre-flight-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pre-flight-check.d.ts","sourceRoot":"","sources":["../../scripts/pre-flight-check.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,UAAU,eAAe;IACvB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AA6KD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC,eAAe,CAAC,CAuDtG"}
@@ -0,0 +1,244 @@
1
+ /**
2
+ * プリフライトチェック
3
+ * スクリプト実行前に必要な設定が揃っているか確認
4
+ */
5
+ import { existsSync, readFileSync } from 'fs';
6
+ import { join } from 'path';
7
+ import axios from 'axios';
8
+ import { config } from 'dotenv';
9
+ config();
10
+ /**
11
+ * .env設定をチェック
12
+ */
13
+ function checkEnvConfig() {
14
+ const errors = [];
15
+ const warnings = [];
16
+ // .envファイル存在チェック
17
+ if (!existsSync('.env')) {
18
+ errors.push('❌ .envファイルが存在しません');
19
+ errors.push(' → テンプレートからコピー: cp .env.example .env');
20
+ errors.push(' → 編集: vim .env(認証情報を設定)');
21
+ errors.push(' → API Token取得: https://id.atlassian.com/manage-profile/security/api-tokens');
22
+ return { errors, warnings };
23
+ }
24
+ // 必須環境変数チェック
25
+ const required = [
26
+ 'ATLASSIAN_URL',
27
+ 'ATLASSIAN_EMAIL',
28
+ 'ATLASSIAN_API_TOKEN'
29
+ ];
30
+ const missing = required.filter(key => !process.env[key]);
31
+ if (missing.length > 0) {
32
+ errors.push(`❌ .envに必須項目が設定されていません: ${missing.join(', ')}`);
33
+ errors.push(' → 編集: vim .env');
34
+ errors.push(' → API Token取得: https://id.atlassian.com/manage-profile/security/api-tokens');
35
+ errors.push('');
36
+ errors.push(' 必須項目:');
37
+ errors.push(' ATLASSIAN_URL=https://your-site.atlassian.net');
38
+ errors.push(' ATLASSIAN_EMAIL=your-email@example.com');
39
+ errors.push(' ATLASSIAN_API_TOKEN=your-api-token');
40
+ }
41
+ // オプション環境変数の警告
42
+ if (!process.env.CONFLUENCE_PRD_SPACE) {
43
+ warnings.push('⚠️ CONFLUENCE_PRD_SPACEが未設定(デフォルト: PRD)');
44
+ warnings.push(` → スペース一覧: ${process.env.ATLASSIAN_URL}/wiki/spaces`);
45
+ }
46
+ return { errors, warnings };
47
+ }
48
+ /**
49
+ * project.jsonをチェック
50
+ */
51
+ function checkProjectJson() {
52
+ const errors = [];
53
+ const warnings = [];
54
+ const projectJsonPath = join(process.cwd(), '.kiro', 'project.json');
55
+ if (!existsSync(projectJsonPath)) {
56
+ errors.push('❌ .kiro/project.json が存在しません');
57
+ errors.push(' → このディレクトリはMichiプロジェクトではありません');
58
+ errors.push(' → セットアップ: npm run setup-existing(michi-practice1の場合)');
59
+ errors.push(' → または、Michiプロジェクトのディレクトリに移動してください');
60
+ return { errors, warnings };
61
+ }
62
+ let projectMeta;
63
+ try {
64
+ projectMeta = JSON.parse(readFileSync(projectJsonPath, 'utf-8'));
65
+ }
66
+ catch (error) {
67
+ errors.push('❌ project.json のパースに失敗しました');
68
+ return { errors, warnings };
69
+ }
70
+ // 必須フィールドチェック
71
+ const required = ['projectId', 'projectName', 'jiraProjectKey'];
72
+ const missing = required.filter(key => !projectMeta[key]);
73
+ if (missing.length > 0) {
74
+ errors.push(`❌ project.jsonに必須項目がありません: ${missing.join(', ')}`);
75
+ }
76
+ return { errors, warnings };
77
+ }
78
+ /**
79
+ * Confluenceスペース存在チェック(API呼び出し)
80
+ */
81
+ async function checkConfluenceSpace(spaceKey) {
82
+ const errors = [];
83
+ const warnings = [];
84
+ const url = process.env.ATLASSIAN_URL;
85
+ const email = process.env.ATLASSIAN_EMAIL;
86
+ const apiToken = process.env.ATLASSIAN_API_TOKEN;
87
+ if (!url || !email || !apiToken) {
88
+ errors.push('❌ .env設定が不完全なため、Confluenceスペースチェックをスキップ');
89
+ return { errors, warnings };
90
+ }
91
+ try {
92
+ const auth = Buffer.from(`${email}:${apiToken}`).toString('base64');
93
+ const response = await axios.get(`${url}/wiki/rest/api/space/${spaceKey}`, {
94
+ headers: {
95
+ 'Authorization': `Basic ${auth}`,
96
+ 'Content-Type': 'application/json'
97
+ }
98
+ });
99
+ if (response.data) {
100
+ console.log(` ✅ Confluenceスペース確認: ${spaceKey} (${response.data.name})`);
101
+ }
102
+ }
103
+ catch (error) {
104
+ if (error.response?.status === 404) {
105
+ errors.push(`❌ Confluenceスペースが存在しません: ${spaceKey}`);
106
+ errors.push(` → Confluenceで新しいスペースを作成: ${url}/wiki/spaces`);
107
+ errors.push(' → または、.envのCONFLUENCE_PRD_SPACEを修正してください');
108
+ }
109
+ else if (error.response?.status === 401) {
110
+ errors.push('❌ Confluence認証エラー(.envの認証情報を確認)');
111
+ errors.push(` → API Token管理: ${url.replace('atlassian.net', 'atlassian.net/manage/profile/security/api-tokens')}`);
112
+ }
113
+ else {
114
+ warnings.push(`⚠️ Confluenceスペースチェック失敗: ${error.message}`);
115
+ }
116
+ }
117
+ return { errors, warnings };
118
+ }
119
+ /**
120
+ * JIRAプロジェクト存在チェック(API呼び出し)
121
+ */
122
+ async function checkJiraProject(projectKey) {
123
+ const errors = [];
124
+ const warnings = [];
125
+ const url = process.env.ATLASSIAN_URL;
126
+ const email = process.env.ATLASSIAN_EMAIL;
127
+ const apiToken = process.env.ATLASSIAN_API_TOKEN;
128
+ if (!url || !email || !apiToken) {
129
+ errors.push('❌ .env設定が不完全なため、JIRAプロジェクトチェックをスキップ');
130
+ return { errors, warnings };
131
+ }
132
+ try {
133
+ const auth = Buffer.from(`${email}:${apiToken}`).toString('base64');
134
+ const response = await axios.get(`${url}/rest/api/3/project/${projectKey}`, {
135
+ headers: {
136
+ 'Authorization': `Basic ${auth}`,
137
+ 'Content-Type': 'application/json'
138
+ }
139
+ });
140
+ if (response.data) {
141
+ console.log(` ✅ JIRAプロジェクト確認: ${projectKey} (${response.data.name})`);
142
+ }
143
+ }
144
+ catch (error) {
145
+ if (error.response?.status === 404) {
146
+ errors.push(`❌ JIRAプロジェクトが存在しません: ${projectKey}`);
147
+ errors.push(` → JIRAプロジェクト作成: ${url}/jira/projects/create`);
148
+ errors.push(` → プロジェクト一覧: ${url}/jira/settings/projects`);
149
+ errors.push(' → または、.kiro/project.jsonのjiraProjectKeyを修正してください');
150
+ errors.push(` 現在の設定: "${projectKey}" → 実際に存在するキーに変更`);
151
+ }
152
+ else if (error.response?.status === 401) {
153
+ errors.push('❌ JIRA認証エラー(.envの認証情報を確認)');
154
+ errors.push(` → API Token管理: https://id.atlassian.com/manage-profile/security/api-tokens`);
155
+ }
156
+ else {
157
+ warnings.push(`⚠️ JIRAプロジェクトチェック失敗: ${error.message}`);
158
+ }
159
+ }
160
+ return { errors, warnings };
161
+ }
162
+ /**
163
+ * プリフライトチェック実行
164
+ */
165
+ export async function runPreFlightCheck(phase) {
166
+ console.log('\n🔍 プリフライトチェック実行中...\n');
167
+ const allErrors = [];
168
+ const allWarnings = [];
169
+ // 1. .env設定チェック
170
+ console.log('📋 Step 1: .env設定チェック');
171
+ const envCheck = checkEnvConfig();
172
+ allErrors.push(...envCheck.errors);
173
+ allWarnings.push(...envCheck.warnings);
174
+ if (envCheck.errors.length === 0) {
175
+ console.log(' ✅ .env設定OK');
176
+ }
177
+ // 2. project.jsonチェック
178
+ console.log('\n📋 Step 2: project.json設定チェック');
179
+ const projectCheck = checkProjectJson();
180
+ allErrors.push(...projectCheck.errors);
181
+ allWarnings.push(...projectCheck.warnings);
182
+ if (projectCheck.errors.length === 0) {
183
+ console.log(' ✅ project.json設定OK');
184
+ }
185
+ // .envまたはproject.jsonエラーがあれば、ここで中断
186
+ if (allErrors.length > 0) {
187
+ return { valid: false, errors: allErrors, warnings: allWarnings };
188
+ }
189
+ // 3. Confluenceスペースチェック(API呼び出し)
190
+ if (phase === 'confluence' || phase === 'all') {
191
+ console.log('\n📋 Step 3: Confluenceスペース存在チェック');
192
+ const spaceKey = process.env.CONFLUENCE_PRD_SPACE || 'PRD';
193
+ const spaceCheck = await checkConfluenceSpace(spaceKey);
194
+ allErrors.push(...spaceCheck.errors);
195
+ allWarnings.push(...spaceCheck.warnings);
196
+ }
197
+ // 4. JIRAプロジェクトチェック(API呼び出し)
198
+ if (phase === 'jira' || phase === 'all') {
199
+ console.log('\n📋 Step 4: JIRAプロジェクト存在チェック');
200
+ const projectJsonPath = join(process.cwd(), '.kiro', 'project.json');
201
+ const projectMeta = JSON.parse(readFileSync(projectJsonPath, 'utf-8'));
202
+ const jiraCheck = await checkJiraProject(projectMeta.jiraProjectKey);
203
+ allErrors.push(...jiraCheck.errors);
204
+ allWarnings.push(...jiraCheck.warnings);
205
+ }
206
+ return {
207
+ valid: allErrors.length === 0,
208
+ errors: allErrors,
209
+ warnings: allWarnings
210
+ };
211
+ }
212
+ // CLI実行
213
+ if (import.meta.url === `file://${process.argv[1]}`) {
214
+ const args = process.argv.slice(2);
215
+ const phase = args[0] || 'all';
216
+ if (!['confluence', 'jira', 'all'].includes(phase)) {
217
+ console.error('Usage: npm run preflight [confluence|jira|all]');
218
+ process.exit(1);
219
+ }
220
+ runPreFlightCheck(phase)
221
+ .then((result) => {
222
+ console.log('\n' + '='.repeat(60));
223
+ if (result.warnings.length > 0) {
224
+ console.log('\n⚠️ 警告:');
225
+ result.warnings.forEach(w => console.log(` ${w}`));
226
+ }
227
+ if (result.errors.length > 0) {
228
+ console.log('\n❌ エラー:');
229
+ result.errors.forEach(e => console.log(` ${e}`));
230
+ console.log('\n❌ プリフライトチェック失敗');
231
+ process.exit(1);
232
+ }
233
+ else {
234
+ console.log('\n✅ プリフライトチェック成功');
235
+ console.log(' すべての設定が正しく構成されています');
236
+ process.exit(0);
237
+ }
238
+ })
239
+ .catch((error) => {
240
+ console.error(`\n❌ チェックエラー: ${error.message}`);
241
+ process.exit(1);
242
+ });
243
+ }
244
+ //# sourceMappingURL=pre-flight-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pre-flight-check.js","sourceRoot":"","sources":["../../scripts/pre-flight-check.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * リソースダッシュボード生成
3
+ * プロジェクト横断のリソース管理ダッシュボードをConfluenceに作成
4
+ */
5
+ declare function createResourceDashboard(): Promise<void>;
6
+ export { createResourceDashboard };
7
+ //# sourceMappingURL=resource-dashboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-dashboard.d.ts","sourceRoot":"","sources":["../../scripts/resource-dashboard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA4BH,iBAAe,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CA4EtD;AAeD,OAAO,EAAE,uBAAuB,EAAE,CAAC"}