@sk8metal/michi-cli 0.0.8 → 0.0.9

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 (104) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +202 -9
  3. package/dist/scripts/__tests__/setup-existing-project.test.js +67 -5
  4. package/dist/scripts/__tests__/setup-existing-project.test.js.map +1 -1
  5. package/dist/scripts/constants/__tests__/environments.test.d.ts +2 -0
  6. package/dist/scripts/constants/__tests__/environments.test.d.ts.map +1 -0
  7. package/dist/scripts/constants/__tests__/environments.test.js +91 -0
  8. package/dist/scripts/constants/__tests__/environments.test.js.map +1 -0
  9. package/dist/scripts/constants/__tests__/languages.test.d.ts +2 -0
  10. package/dist/scripts/constants/__tests__/languages.test.d.ts.map +1 -0
  11. package/dist/scripts/constants/__tests__/languages.test.js +82 -0
  12. package/dist/scripts/constants/__tests__/languages.test.js.map +1 -0
  13. package/dist/scripts/constants/environments.d.ts +33 -0
  14. package/dist/scripts/constants/environments.d.ts.map +1 -0
  15. package/dist/scripts/constants/environments.js +49 -0
  16. package/dist/scripts/constants/environments.js.map +1 -0
  17. package/dist/scripts/constants/languages.d.ts +23 -0
  18. package/dist/scripts/constants/languages.d.ts.map +1 -0
  19. package/dist/scripts/constants/languages.js +53 -0
  20. package/dist/scripts/constants/languages.js.map +1 -0
  21. package/dist/scripts/create-project.d.ts +4 -0
  22. package/dist/scripts/create-project.d.ts.map +1 -1
  23. package/dist/scripts/create-project.js +51 -22
  24. package/dist/scripts/create-project.js.map +1 -1
  25. package/dist/scripts/setup-existing-project.d.ts +3 -1
  26. package/dist/scripts/setup-existing-project.d.ts.map +1 -1
  27. package/dist/scripts/setup-existing-project.js +110 -55
  28. package/dist/scripts/setup-existing-project.js.map +1 -1
  29. package/dist/scripts/template/__tests__/renderer.test.d.ts +2 -0
  30. package/dist/scripts/template/__tests__/renderer.test.d.ts.map +1 -0
  31. package/dist/scripts/template/__tests__/renderer.test.js +165 -0
  32. package/dist/scripts/template/__tests__/renderer.test.js.map +1 -0
  33. package/dist/scripts/template/renderer.d.ts +70 -0
  34. package/dist/scripts/template/renderer.d.ts.map +1 -0
  35. package/dist/scripts/template/renderer.js +99 -0
  36. package/dist/scripts/template/renderer.js.map +1 -0
  37. package/dist/scripts/utils/template-finder.d.ts +37 -0
  38. package/dist/scripts/utils/template-finder.d.ts.map +1 -0
  39. package/dist/scripts/utils/template-finder.js +63 -0
  40. package/dist/scripts/utils/template-finder.js.map +1 -0
  41. package/dist/src/__tests__/integration/setup/claude-agent.test.d.ts +5 -0
  42. package/dist/src/__tests__/integration/setup/claude-agent.test.d.ts.map +1 -0
  43. package/dist/src/__tests__/integration/setup/claude-agent.test.js +125 -0
  44. package/dist/src/__tests__/integration/setup/claude-agent.test.js.map +1 -0
  45. package/dist/src/__tests__/integration/setup/claude.test.d.ts +5 -0
  46. package/dist/src/__tests__/integration/setup/claude.test.d.ts.map +1 -0
  47. package/dist/src/__tests__/integration/setup/claude.test.js +111 -0
  48. package/dist/src/__tests__/integration/setup/claude.test.js.map +1 -0
  49. package/dist/src/__tests__/integration/setup/cursor.test.d.ts +5 -0
  50. package/dist/src/__tests__/integration/setup/cursor.test.d.ts.map +1 -0
  51. package/dist/src/__tests__/integration/setup/cursor.test.js +162 -0
  52. package/dist/src/__tests__/integration/setup/cursor.test.js.map +1 -0
  53. package/dist/src/__tests__/integration/setup/helpers/fs-assertions.d.ts +32 -0
  54. package/dist/src/__tests__/integration/setup/helpers/fs-assertions.d.ts.map +1 -0
  55. package/dist/src/__tests__/integration/setup/helpers/fs-assertions.js +72 -0
  56. package/dist/src/__tests__/integration/setup/helpers/fs-assertions.js.map +1 -0
  57. package/dist/src/__tests__/integration/setup/helpers/test-project.d.ts +38 -0
  58. package/dist/src/__tests__/integration/setup/helpers/test-project.d.ts.map +1 -0
  59. package/dist/src/__tests__/integration/setup/helpers/test-project.js +83 -0
  60. package/dist/src/__tests__/integration/setup/helpers/test-project.js.map +1 -0
  61. package/dist/src/__tests__/integration/setup/validation.test.d.ts +5 -0
  62. package/dist/src/__tests__/integration/setup/validation.test.d.ts.map +1 -0
  63. package/dist/src/__tests__/integration/setup/validation.test.js +318 -0
  64. package/dist/src/__tests__/integration/setup/validation.test.js.map +1 -0
  65. package/dist/src/cli.d.ts.map +1 -1
  66. package/dist/src/cli.js +20 -0
  67. package/dist/src/cli.js.map +1 -1
  68. package/dist/src/commands/setup-existing.d.ts +22 -0
  69. package/dist/src/commands/setup-existing.d.ts.map +1 -0
  70. package/dist/src/commands/setup-existing.js +408 -0
  71. package/dist/src/commands/setup-existing.js.map +1 -0
  72. package/dist/vitest.config.d.ts.map +1 -1
  73. package/dist/vitest.config.js +4 -3
  74. package/dist/vitest.config.js.map +1 -1
  75. package/docs/getting-started/new-repository-setup.md +108 -28
  76. package/docs/getting-started/quick-start.md +57 -6
  77. package/docs/getting-started/setup.md +250 -2
  78. package/docs/guides/customization.md +3 -3
  79. package/docs/guides/multi-project.md +1 -1
  80. package/docs/reference/quick-reference.md +25 -16
  81. package/docs/testing/integration-tests.md +297 -0
  82. package/package.json +7 -2
  83. package/scripts/__tests__/setup-existing-project.test.ts +73 -5
  84. package/scripts/constants/__tests__/environments.test.ts +110 -0
  85. package/scripts/constants/__tests__/languages.test.ts +100 -0
  86. package/scripts/constants/environments.ts +61 -0
  87. package/scripts/constants/languages.ts +70 -0
  88. package/scripts/create-project.ts +52 -22
  89. package/scripts/setup-existing-project.ts +136 -57
  90. package/scripts/setup-existing.sh +130 -3
  91. package/scripts/template/__tests__/renderer.test.ts +207 -0
  92. package/scripts/template/renderer.ts +133 -0
  93. package/scripts/utils/template-finder.ts +75 -0
  94. package/templates/claude/commands/michi/confluence-sync.md +38 -0
  95. package/templates/claude/commands/michi/project-switch.md +36 -0
  96. package/templates/claude/rules/atlassian-integration.md +35 -0
  97. package/templates/claude/rules/michi-core.md +54 -0
  98. package/templates/claude-agent/README.md +25 -0
  99. package/templates/cursor/commands/michi/confluence-sync.md +76 -0
  100. package/templates/cursor/commands/michi/project-switch.md +69 -0
  101. package/templates/cursor/rules/atlassian-mcp.mdc +188 -0
  102. package/templates/cursor/rules/github-ssot.mdc +151 -0
  103. package/templates/cursor/rules/multi-project.mdc +81 -0
  104. package/scripts/setup-env.sh +0 -52
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environments.d.ts","sourceRoot":"","sources":["../../../scripts/constants/environments.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,cAAc,GAAG,QAAQ,CAAC;AAE/D,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,WAAW,EAAE,iBAAiB,CAgB7D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAAI,KAAK,WAAW,KAAG,iBAEvD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GAAI,KAAK,MAAM,KAAG,GAAG,IAAI,WAE3D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,QAAO,WAAW,EAEtD,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Environment configuration mapping for cc-sdd environments
3
+ *
4
+ * Issue #37: 環境別コピー実装
5
+ */
6
+ export const ENV_CONFIG = {
7
+ 'claude': {
8
+ rulesDir: '.claude/rules',
9
+ commandsDir: '.claude/commands/kiro',
10
+ templateSource: 'claude'
11
+ },
12
+ 'claude-agent': {
13
+ rulesDir: '.claude/rules',
14
+ commandsDir: '.claude/commands/kiro',
15
+ templateSource: 'claude-agent'
16
+ },
17
+ 'cursor': {
18
+ rulesDir: '.cursor/rules',
19
+ commandsDir: '.cursor/commands/kiro',
20
+ templateSource: 'cursor'
21
+ }
22
+ };
23
+ /**
24
+ * Get environment configuration
25
+ *
26
+ * @param env - Environment name
27
+ * @returns Environment configuration
28
+ */
29
+ export const getEnvironmentConfig = (env) => {
30
+ return ENV_CONFIG[env];
31
+ };
32
+ /**
33
+ * Validate if an environment is supported
34
+ *
35
+ * @param env - Environment name to validate
36
+ * @returns True if supported, false otherwise
37
+ */
38
+ export const isSupportedEnvironment = (env) => {
39
+ return env in ENV_CONFIG;
40
+ };
41
+ /**
42
+ * Get all supported environments
43
+ *
44
+ * @returns Array of supported environment names
45
+ */
46
+ export const getSupportedEnvironments = () => {
47
+ return Object.keys(ENV_CONFIG);
48
+ };
49
+ //# sourceMappingURL=environments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environments.js","sourceRoot":"","sources":["../../../scripts/constants/environments.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,MAAM,CAAC,MAAM,UAAU,GAA2C;IAChE,QAAQ,EAAE;QACR,QAAQ,EAAE,eAAe;QACzB,WAAW,EAAE,uBAAuB;QACpC,cAAc,EAAE,QAAQ;KACzB;IACD,cAAc,EAAE;QACd,QAAQ,EAAE,eAAe;QACzB,WAAW,EAAE,uBAAuB;QACpC,cAAc,EAAE,cAAc;KAC/B;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,eAAe;QACzB,WAAW,EAAE,uBAAuB;QACpC,cAAc,EAAE,QAAQ;KACzB;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAgB,EAAqB,EAAE;IAC1E,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAW,EAAsB,EAAE;IACxE,OAAO,GAAG,IAAI,UAAU,CAAC;AAC3B,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAkB,EAAE;IAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAkB,CAAC;AAClD,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Supported languages and development guidelines map
3
+ *
4
+ * Issue #37: 環境別コピー実装
5
+ */
6
+ export declare const supportedLanguages: readonly ["ja", "en", "zh-TW", "zh", "es", "pt", "de", "fr", "ru", "it", "ko", "ar"];
7
+ export type SupportedLanguage = typeof supportedLanguages[number];
8
+ export declare const DEV_GUIDELINES_MAP: Record<SupportedLanguage, string>;
9
+ /**
10
+ * Get development guidelines for a specific language
11
+ *
12
+ * @param lang - Language code
13
+ * @returns Development guidelines string
14
+ */
15
+ export declare const getDevGuidelines: (lang: SupportedLanguage) => string;
16
+ /**
17
+ * Validate if a language code is supported
18
+ *
19
+ * @param lang - Language code to validate
20
+ * @returns True if supported, false otherwise
21
+ */
22
+ export declare const isSupportedLanguage: (lang: string) => lang is SupportedLanguage;
23
+ //# sourceMappingURL=languages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"languages.d.ts","sourceRoot":"","sources":["../../../scripts/constants/languages.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,kBAAkB,sFAGrB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAElE,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAmChE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,iBAAiB,KAAG,MAE1D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,KAAG,IAAI,IAAI,iBAE1D,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Supported languages and development guidelines map
3
+ *
4
+ * Issue #37: 環境別コピー実装
5
+ */
6
+ export const supportedLanguages = [
7
+ 'ja', 'en', 'zh-TW', 'zh', 'es', 'pt',
8
+ 'de', 'fr', 'ru', 'it', 'ko', 'ar'
9
+ ];
10
+ export const DEV_GUIDELINES_MAP = {
11
+ en: '- Think in English, generate responses in English',
12
+ ja: '- Think in English, but generate responses in Japanese ' +
13
+ '(思考は英語、回答の生成は日本語で行うように)',
14
+ 'zh-TW': '- 以英文思考,但以繁體中文生成回應' +
15
+ '(Think in English, generate in Traditional Chinese)',
16
+ zh: '- 以英文思考,但以简体中文生成回复' +
17
+ '(Think in English, generate in Simplified Chinese)',
18
+ es: '- Think in English, generate responses in Spanish ' +
19
+ '(Piensa en inglés, genera respuestas en español)',
20
+ pt: '- Think in English, generate responses in Portuguese ' +
21
+ '(Pense em inglês, gere respostas em português)',
22
+ de: '- Think in English, generate responses in German ' +
23
+ '(Denke auf Englisch, formuliere Antworten auf Deutsch)',
24
+ fr: '- Think in English, generate responses in French ' +
25
+ '(Pensez en anglais, générez des réponses en français)',
26
+ ru: '- Think in English, generate responses in Russian ' +
27
+ '(Думай по-английски, отвечай по-русски)',
28
+ it: '- Think in English, generate responses in Italian ' +
29
+ '(Pensa in inglese, genera risposte in italiano)',
30
+ ko: '- Think in English, generate responses in Korean ' +
31
+ '(영어로 사고하고, 한국어로 응답을 생성하세요)',
32
+ ar: '- Think in English, generate responses in Arabic ' +
33
+ '(فكر بالإنجليزية وأجب بالعربية)',
34
+ };
35
+ /**
36
+ * Get development guidelines for a specific language
37
+ *
38
+ * @param lang - Language code
39
+ * @returns Development guidelines string
40
+ */
41
+ export const getDevGuidelines = (lang) => {
42
+ return DEV_GUIDELINES_MAP[lang];
43
+ };
44
+ /**
45
+ * Validate if a language code is supported
46
+ *
47
+ * @param lang - Language code to validate
48
+ * @returns True if supported, false otherwise
49
+ */
50
+ export const isSupportedLanguage = (lang) => {
51
+ return supportedLanguages.includes(lang);
52
+ };
53
+ //# sourceMappingURL=languages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"languages.js","sourceRoot":"","sources":["../../../scripts/constants/languages.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACrC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CAC1B,CAAC;AAIX,MAAM,CAAC,MAAM,kBAAkB,GAAsC;IACnE,EAAE,EAAE,mDAAmD;IAEvD,EAAE,EAAE,yDAAyD;QACvD,yBAAyB;IAE/B,OAAO,EAAE,oBAAoB;QAClB,qDAAqD;IAEhE,EAAE,EAAE,oBAAoB;QAClB,oDAAoD;IAE1D,EAAE,EAAE,oDAAoD;QAClD,kDAAkD;IAExD,EAAE,EAAE,uDAAuD;QACrD,gDAAgD;IAEtD,EAAE,EAAE,mDAAmD;QACjD,wDAAwD;IAE9D,EAAE,EAAE,mDAAmD;QACjD,uDAAuD;IAE7D,EAAE,EAAE,oDAAoD;QAClD,yCAAyC;IAE/C,EAAE,EAAE,oDAAoD;QAClD,iDAAiD;IAEvD,EAAE,EAAE,mDAAmD;QACjD,4BAA4B;IAElC,EAAE,EAAE,mDAAmD;QACjD,iCAAiC;CACxC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAuB,EAAU,EAAE;IAClE,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAA6B,EAAE;IAC7E,OAAQ,kBAAwC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAClE,CAAC,CAAC"}
@@ -2,6 +2,10 @@
2
2
  /**
3
3
  * 新規プロジェクト自動セットアップスクリプト
4
4
  *
5
+ * Issue #35: cc-sdd準拠の多環境対応基盤
6
+ * - templates/ディレクトリから読み込み
7
+ * - プレースホルダーはそのまま(実行時にAIが解釈)
8
+ *
5
9
  * 使い方:
6
10
  * npm run create-project -- \
7
11
  * --name "20240115-payment-api" \
@@ -1 +1 @@
1
- {"version":3,"file":"create-project.d.ts","sourceRoot":"","sources":["../../scripts/create-project.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG"}
1
+ {"version":3,"file":"create-project.d.ts","sourceRoot":"","sources":["../../scripts/create-project.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;GAYG"}
@@ -2,6 +2,10 @@
2
2
  /**
3
3
  * 新規プロジェクト自動セットアップスクリプト
4
4
  *
5
+ * Issue #35: cc-sdd準拠の多環境対応基盤
6
+ * - templates/ディレクトリから読み込み
7
+ * - プレースホルダーはそのまま(実行時にAIが解釈)
8
+ *
5
9
  * 使い方:
6
10
  * npm run create-project -- \
7
11
  * --name "20240115-payment-api" \
@@ -10,9 +14,10 @@
10
14
  */
11
15
  import { execSync } from 'child_process';
12
16
  import { writeFileSync, mkdirSync, cpSync, existsSync } from 'fs';
13
- import { resolve, join, dirname } from 'path';
17
+ import { resolve, join, dirname, basename } from 'path';
14
18
  import { fileURLToPath } from 'url';
15
19
  import { config as loadDotenv } from 'dotenv';
20
+ import { findTemplateFile, validateRequiredTemplates } from './utils/template-finder.js';
16
21
  // ESモジュール対応: __dirnameの代替
17
22
  const __filename = fileURLToPath(import.meta.url);
18
23
  const __dirname = dirname(__filename);
@@ -167,41 +172,65 @@ async function createProject(config) {
167
172
  };
168
173
  writeFileSync('.kiro/project.json', JSON.stringify(projectJson, null, 2));
169
174
  console.log(' ✅ project.json created');
170
- // Step 8: Michiから共通ファイルをコピー
171
- console.log('\n📋 Step 8: Copying common files from Michi...');
175
+ // Step 8: Michiから共通ファイルをコピー(templates/から)
176
+ console.log('\n📋 Step 8: Copying common files from Michi templates...');
177
+ console.log(' ℹ️ Issue #35: cc-sdd compliant approach (placeholders preserved)');
172
178
  const michiPath = resolve(__dirname, '..');
179
+ // 必須テンプレートのバリデーション
180
+ const requiredTemplates = [
181
+ 'rules/github-ssot.mdc',
182
+ 'rules/multi-project.mdc',
183
+ 'commands/michi/confluence-sync.md',
184
+ 'commands/michi/project-switch.md'
185
+ ];
186
+ try {
187
+ validateRequiredTemplates(michiPath, requiredTemplates);
188
+ }
189
+ catch (error) {
190
+ console.error('\n❌ Template validation failed:');
191
+ console.error(` ${error instanceof Error ? error.message : String(error)}`);
192
+ process.exit(1);
193
+ }
173
194
  // コピー先ディレクトリを事前に作成(actualProjectDir 配下に作成)
174
195
  console.log(` 📂 Copying to: ${actualProjectDir}`);
175
196
  mkdirSync(join(actualProjectDir, '.cursor/rules'), { recursive: true });
176
- mkdirSync(join(actualProjectDir, '.cursor/commands/kiro'), { recursive: true });
197
+ mkdirSync(join(actualProjectDir, '.cursor/commands/michi'), { recursive: true });
177
198
  mkdirSync(join(actualProjectDir, '.kiro/steering'), { recursive: true });
178
199
  mkdirSync(join(actualProjectDir, '.kiro/settings/templates'), { recursive: true });
179
200
  mkdirSync(join(actualProjectDir, 'scripts/utils'), { recursive: true });
180
- // ルールファイル
201
+ // ルールファイル(templates/から)
181
202
  const rulesToCopy = [
182
- 'multi-project.mdc',
183
- 'github-ssot.mdc',
184
- 'atlassian-mcp.mdc'
203
+ 'rules/multi-project.mdc',
204
+ 'rules/github-ssot.mdc',
205
+ 'rules/atlassian-mcp.mdc'
185
206
  ];
186
- for (const rule of rulesToCopy) {
187
- const src = join(michiPath, '.cursor/rules', rule);
188
- const dest = join(actualProjectDir, '.cursor/rules', rule);
189
- if (existsSync(src)) {
207
+ for (const rulePath of rulesToCopy) {
208
+ const src = findTemplateFile(michiPath, rulePath);
209
+ const fileName = basename(rulePath);
210
+ const dest = join(actualProjectDir, '.cursor/rules', fileName);
211
+ if (src) {
190
212
  cpSync(src, dest);
191
- console.log(` ✅ Copied: .cursor/rules/${rule}`);
213
+ console.log(` ✅ Copied: .cursor/rules/${fileName} (from templates/)`);
214
+ }
215
+ else {
216
+ console.log(` ⚠️ ${fileName} not found in templates/`);
192
217
  }
193
218
  }
194
- // カスタムコマンド
219
+ // カスタムコマンド(templates/から)
195
220
  const commandsToCopy = [
196
- 'confluence-sync.md',
197
- 'project-switch.md'
221
+ 'commands/michi/confluence-sync.md',
222
+ 'commands/michi/project-switch.md'
198
223
  ];
199
- for (const cmd of commandsToCopy) {
200
- const src = join(michiPath, '.cursor/commands/kiro', cmd);
201
- const dest = join(actualProjectDir, '.cursor/commands/kiro', cmd);
202
- if (existsSync(src)) {
224
+ for (const cmdPath of commandsToCopy) {
225
+ const src = findTemplateFile(michiPath, cmdPath);
226
+ const fileName = basename(cmdPath);
227
+ const dest = join(actualProjectDir, '.cursor/commands/michi', fileName);
228
+ if (src) {
203
229
  cpSync(src, dest);
204
- console.log(` ✅ Copied: .cursor/commands/kiro/${cmd}`);
230
+ console.log(` ✅ Copied: .cursor/commands/michi/${fileName} (from templates/)`);
231
+ }
232
+ else {
233
+ console.log(` ⚠️ ${fileName} not found in templates/`);
205
234
  }
206
235
  }
207
236
  // Steering
@@ -289,7 +318,7 @@ async function createProject(config) {
289
318
  console.log(' 4. Cursor で開く: cursor .');
290
319
  console.log(' 5. /kiro:spec-init <機能説明> で開発開始');
291
320
  console.log('');
292
- console.log('詳細: docs/new-repository-setup.md');
321
+ console.log('詳細: docs/getting-started/new-repository-setup.md');
293
322
  }
294
323
  finally {
295
324
  // 元の作業ディレクトリに戻る
@@ -1 +1 @@
1
- {"version":3,"file":"create-project.js","sourceRoot":"","sources":["../../scripts/create-project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-project.js","sourceRoot":"","sources":["../../scripts/create-project.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,9 @@
7
7
  * npx tsx /path/to/michi/scripts/setup-existing-project.ts \
8
8
  * --michi-path /path/to/michi \
9
9
  * --project-name "既存プロジェクト" \
10
- * --jira-key "EXIST"
10
+ * --jira-key "EXIST" \
11
+ * --environment cursor \
12
+ * --lang ja
11
13
  */
12
14
  export {};
13
15
  //# sourceMappingURL=setup-existing-project.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup-existing-project.d.ts","sourceRoot":"","sources":["../../scripts/setup-existing-project.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG"}
1
+ {"version":3,"file":"setup-existing-project.d.ts","sourceRoot":"","sources":["../../scripts/setup-existing-project.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG"}
@@ -7,12 +7,21 @@
7
7
  * npx tsx /path/to/michi/scripts/setup-existing-project.ts \
8
8
  * --michi-path /path/to/michi \
9
9
  * --project-name "既存プロジェクト" \
10
- * --jira-key "EXIST"
10
+ * --jira-key "EXIST" \
11
+ * --environment cursor \
12
+ * --lang ja
11
13
  */
12
- import { cpSync, existsSync, mkdirSync, writeFileSync, readFileSync } from 'fs';
13
- import { resolve, join, basename } from 'path';
14
+ import { cpSync, existsSync, mkdirSync, writeFileSync, readFileSync, readdirSync } from 'fs';
15
+ import { resolve, join, basename, dirname } from 'path';
16
+ import { fileURLToPath } from 'url';
14
17
  import { execSync } from 'child_process';
15
18
  import { findRepositoryRoot } from './utils/project-finder.js';
19
+ import { getEnvironmentConfig, isSupportedEnvironment } from './constants/environments.js';
20
+ import { isSupportedLanguage } from './constants/languages.js';
21
+ import { createTemplateContext, renderTemplate } from './template/renderer.js';
22
+ // ES module で __dirname を取得
23
+ const __filename = fileURLToPath(import.meta.url);
24
+ const __dirname = dirname(__filename);
16
25
  function parseArgs() {
17
26
  const args = process.argv.slice(2);
18
27
  const config = {};
@@ -29,20 +38,69 @@ function parseArgs() {
29
38
  case 'jira-key':
30
39
  config.jiraKey = value;
31
40
  break;
41
+ case 'environment':
42
+ config.environment = value;
43
+ break;
44
+ case 'lang':
45
+ config.langCode = value;
46
+ break;
32
47
  }
33
48
  }
34
49
  // デフォルト値
35
50
  if (!config.michiPath) {
36
51
  config.michiPath = resolve(__dirname, '..');
37
52
  }
53
+ if (!config.environment) {
54
+ config.environment = 'claude';
55
+ }
56
+ if (!config.langCode) {
57
+ config.langCode = 'ja';
58
+ }
38
59
  // 必須フィールドチェック
39
60
  if (!config.projectName || !config.jiraKey) {
40
61
  console.error('Missing required parameters');
41
- console.error('Usage: tsx setup-existing-project.ts --project-name <name> --jira-key <key> [--michi-path <path>]');
62
+ console.error('Usage: tsx setup-existing-project.ts --project-name <name> --jira-key <key> [--michi-path <path>] [--environment <env>] [--lang <code>]');
63
+ process.exit(1);
64
+ }
65
+ // 環境バリデーション
66
+ if (!isSupportedEnvironment(config.environment)) {
67
+ console.error(`Unsupported environment: ${config.environment}`);
68
+ console.error('Supported environments: claude, claude-agent, cursor');
69
+ process.exit(1);
70
+ }
71
+ // 言語バリデーション
72
+ if (!isSupportedLanguage(config.langCode)) {
73
+ console.error(`Unsupported language: ${config.langCode}`);
74
+ console.error('Supported languages: ja, en, zh-TW, zh, es, pt, de, fr, ru, it, ko, ar');
42
75
  process.exit(1);
43
76
  }
44
77
  return config;
45
78
  }
79
+ /**
80
+ * Copy and render templates recursively
81
+ *
82
+ * @param sourceDir - Source directory containing templates
83
+ * @param destDir - Destination directory for rendered files
84
+ * @param context - Template context for rendering
85
+ */
86
+ function copyAndRenderTemplates(sourceDir, destDir, context) {
87
+ const entries = readdirSync(sourceDir, { withFileTypes: true });
88
+ for (const entry of entries) {
89
+ const sourcePath = join(sourceDir, entry.name);
90
+ const destPath = join(destDir, entry.name);
91
+ if (entry.isDirectory()) {
92
+ // ディレクトリは再帰的にコピー
93
+ mkdirSync(destPath, { recursive: true });
94
+ copyAndRenderTemplates(sourcePath, destPath, context);
95
+ }
96
+ else if (entry.isFile()) {
97
+ // ファイルはレンダリングしてコピー
98
+ const content = readFileSync(sourcePath, 'utf-8');
99
+ const rendered = renderTemplate(content, context);
100
+ writeFileSync(destPath, rendered, 'utf-8');
101
+ }
102
+ }
103
+ }
46
104
  async function setupExistingProject(config) {
47
105
  const currentDir = process.cwd();
48
106
  const projectId = basename(currentDir);
@@ -50,6 +108,8 @@ async function setupExistingProject(config) {
50
108
  console.log(` プロジェクト: ${config.projectName}`);
51
109
  console.log(` ディレクトリ: ${currentDir}`);
52
110
  console.log(` Michiパス: ${config.michiPath}`);
111
+ console.log(` 環境: ${config.environment}`);
112
+ console.log(` 言語: ${config.langCode}`);
53
113
  console.log('');
54
114
  // リポジトリルートを検出
55
115
  const repoRoot = findRepositoryRoot(currentDir);
@@ -122,6 +182,7 @@ async function setupExistingProject(config) {
122
182
  const projectJson = {
123
183
  projectId,
124
184
  projectName: config.projectName,
185
+ language: config.langCode,
125
186
  jiraProjectKey: config.jiraKey,
126
187
  confluenceLabels: labels,
127
188
  status: 'active',
@@ -132,57 +193,50 @@ async function setupExistingProject(config) {
132
193
  };
133
194
  writeFileSync('.kiro/project.json', JSON.stringify(projectJson, null, 2));
134
195
  console.log(' ✅ project.json created');
135
- // Step 4: Michiから共通ルールをコピー
136
- console.log('\n📋 Step 4: Copying common rules from Michi...');
137
- // ディレクトリを事前に作成
138
- mkdirSync(join(projectDir, '.cursor/rules'), { recursive: true });
139
- mkdirSync(join(projectDir, '.cursor/commands/kiro'), { recursive: true });
140
- const rulesToCopy = [
141
- 'multi-project.mdc',
142
- 'github-ssot.mdc',
143
- 'atlassian-mcp.mdc'
144
- ];
145
- for (const rule of rulesToCopy) {
146
- const src = join(config.michiPath, '.cursor/rules', rule);
147
- const dest = join(projectDir, '.cursor/rules', rule);
148
- if (existsSync(src)) {
149
- cpSync(src, dest);
150
- console.log(` ✅ ${rule}`);
151
- }
152
- else {
153
- console.log(` ⚠️ ${rule} not found in Michi`);
154
- }
196
+ // Step 4: 環境別テンプレートのコピーとレンダリング
197
+ console.log('\n📋 Step 4: Copying and rendering templates from Michi...');
198
+ const envConfig = getEnvironmentConfig(config.environment);
199
+ const templateContext = createTemplateContext(config.langCode, '.kiro', envConfig.rulesDir.startsWith('.') ? envConfig.rulesDir.substring(1, envConfig.rulesDir.indexOf('/', 1)) : envConfig.rulesDir.split('/')[0]);
200
+ // テンプレートソースディレクトリ
201
+ const templateSourceDir = join(config.michiPath, 'templates', envConfig.templateSource);
202
+ if (!existsSync(templateSourceDir)) {
203
+ console.log(` ⚠️ Template source not found: ${templateSourceDir}`);
204
+ console.log(' Skipping template copy');
155
205
  }
156
- // Step 5: カスタムコマンドをコピー
157
- console.log('\n🔧 Step 5: Copying custom commands...');
158
- const commandsToCopy = [
159
- 'confluence-sync.md',
160
- 'project-switch.md'
161
- ];
162
- for (const cmd of commandsToCopy) {
163
- const src = join(config.michiPath, '.cursor/commands/kiro', cmd);
164
- const dest = join(projectDir, '.cursor/commands/kiro', cmd);
165
- if (existsSync(src)) {
166
- cpSync(src, dest);
167
- console.log(` ✅ ${cmd}`);
206
+ else {
207
+ // rulesディレクトリのコピーとレンダリング
208
+ const rulesTemplateDir = join(templateSourceDir, 'rules');
209
+ const rulesDestDir = join(projectDir, envConfig.rulesDir);
210
+ if (existsSync(rulesTemplateDir)) {
211
+ mkdirSync(rulesDestDir, { recursive: true });
212
+ copyAndRenderTemplates(rulesTemplateDir, rulesDestDir, templateContext);
213
+ console.log(` ✅ Rules copied and rendered to ${envConfig.rulesDir}`);
214
+ }
215
+ // commandsディレクトリのコピーとレンダリング
216
+ const commandsTemplateDir = join(templateSourceDir, 'commands');
217
+ const commandsDestDir = join(projectDir, envConfig.commandsDir);
218
+ if (existsSync(commandsTemplateDir)) {
219
+ mkdirSync(commandsDestDir, { recursive: true });
220
+ copyAndRenderTemplates(commandsTemplateDir, commandsDestDir, templateContext);
221
+ console.log(` ✅ Commands copied and rendered to ${envConfig.commandsDir}`);
168
222
  }
169
223
  }
170
- // Step 6: Steeringテンプレートをコピー
171
- console.log('\n📚 Step 6: Copying steering templates...');
224
+ // Step 5: Steeringテンプレートをコピー
225
+ console.log('\n📚 Step 5: Copying steering templates...');
172
226
  const steeringDir = join(config.michiPath, '.kiro/steering');
173
227
  if (existsSync(steeringDir)) {
174
228
  cpSync(steeringDir, join(projectDir, '.kiro/steering'), { recursive: true });
175
229
  console.log(' ✅ product.md, tech.md, structure.md');
176
230
  }
177
- // Step 7: テンプレートをコピー
178
- console.log('\n📄 Step 7: Copying spec templates...');
231
+ // Step 6: テンプレートをコピー
232
+ console.log('\n📄 Step 6: Copying spec templates...');
179
233
  const templatesDir = join(config.michiPath, '.kiro/settings/templates');
180
234
  if (existsSync(templatesDir)) {
181
235
  cpSync(templatesDir, join(projectDir, '.kiro/settings/templates'), { recursive: true });
182
236
  console.log(' ✅ requirements.md, design.md, tasks.md');
183
237
  }
184
- // Step 8: CLIツールのセットアップ案内
185
- console.log('\n⚙️ Step 8: Setting up Michi CLI...');
238
+ // Step 7: CLIツールのセットアップ案内
239
+ console.log('\n⚙️ Step 7: Setting up Michi CLI...');
186
240
  console.log(' ✅ Michi CLI setup complete!');
187
241
  console.log('');
188
242
  console.log(' 📋 使用方法:');
@@ -193,8 +247,8 @@ async function setupExistingProject(config) {
193
247
  console.log(' または、グローバルインストール:');
194
248
  console.log(' npm install -g @sk8metal/michi-cli');
195
249
  console.log(' michi jira:sync <feature>');
196
- // Step 9: package.json と tsconfig.json をリポジトリルートにコピー
197
- console.log('\n📦 Step 9: Setting up package.json and TypeScript...');
250
+ // Step 8: package.json と tsconfig.json をリポジトリルートにコピー
251
+ console.log('\n📦 Step 8: Setting up package.json and TypeScript...');
198
252
  // 既存の package.json があるかチェック(リポジトリルート)
199
253
  const hasPackageJson = existsSync(join(repoRoot, 'package.json'));
200
254
  if (!hasPackageJson) {
@@ -235,8 +289,8 @@ async function setupExistingProject(config) {
235
289
  else {
236
290
  console.log(' ℹ️ Existing tsconfig.json found (kept)');
237
291
  }
238
- // Step 10: .env テンプレート作成(プロジェクトディレクトリに)
239
- console.log('\n🔐 Step 10: Creating .env template...');
292
+ // Step 9: .env テンプレート作成(プロジェクトディレクトリに)
293
+ console.log('\n🔐 Step 9: Creating .env template...');
240
294
  const envTemplate = `# Atlassian設定(MCP + REST API共通)
241
295
  ATLASSIAN_URL=https://your-domain.atlassian.net
242
296
  ATLASSIAN_EMAIL=your-email@company.com
@@ -262,8 +316,8 @@ JIRA_PROJECT_KEYS=${config.jiraKey}
262
316
  else {
263
317
  console.log(' ℹ️ .env already exists (kept)');
264
318
  }
265
- // Step 11: README.md を更新(オプション、プロジェクトディレクトリに)
266
- console.log('\n📖 Step 11: Updating documentation...');
319
+ // Step 10: README.md を更新(オプション、プロジェクトディレクトリに)
320
+ console.log('\n📖 Step 10: Updating documentation...');
267
321
  const readmePath = join(projectDir, 'README.md');
268
322
  if (existsSync(readmePath)) {
269
323
  const currentReadme = readFileSync(readmePath, 'utf-8');
@@ -302,8 +356,8 @@ npm run github:create-pr <branch> # PR作成
302
356
  console.log(' ℹ️ README.md already has workflow section');
303
357
  }
304
358
  }
305
- // Step 12: .gitignore 更新(リポジトリルートに)
306
- console.log('\n🚫 Step 12: Updating .gitignore...');
359
+ // Step 11: .gitignore 更新(リポジトリルートに)
360
+ console.log('\n🚫 Step 11: Updating .gitignore...');
307
361
  const gitignoreEntries = [
308
362
  '# AI Development Workflow',
309
363
  'node_modules/',
@@ -340,14 +394,15 @@ npm run github:create-pr <branch> # PR作成
340
394
  console.log(' 2. .env ファイルを編集して認証情報を設定');
341
395
  console.log(' 3. package.json が既存の場合、スクリプトを手動追加');
342
396
  console.log(' 4. npm install で依存関係をインストール(リポジトリルートで実行)');
343
- console.log(' 5. jj commit でセットアップをコミット');
344
- console.log(' 6. Cursor で開く: cursor .');
345
- console.log(' 7. /kiro:spec-init <機能説明> で開発開始');
397
+ console.log(` 5. cc-sddを導入: npx cc-sdd@latest --lang ${config.langCode} --${config.environment}`);
398
+ console.log(' 6. jj commit でセットアップをコミット');
399
+ console.log(' 7. Cursor で開く: cursor .');
400
+ console.log(' 8. /kiro:spec-init <機能説明> で開発開始');
346
401
  console.log('');
347
402
  console.log('作成されたファイル:');
348
403
  console.log(` - ${projectDir}/.kiro/project.json`);
349
- console.log(` - ${projectDir}/.cursor/rules/ (3ファイル)`);
350
- console.log(` - ${projectDir}/.cursor/commands/kiro/ (2ファイル)`);
404
+ console.log(` - ${projectDir}/${envConfig.rulesDir}/`);
405
+ console.log(` - ${projectDir}/${envConfig.commandsDir}/`);
351
406
  console.log(` - ${projectDir}/.kiro/steering/ (3ファイル)`);
352
407
  console.log(` - ${projectDir}/.kiro/settings/templates/ (3ファイル)`);
353
408
  console.log(` - ${repoRoot}/package.json (新規の場合)`);