@sk8metal/michi-cli 0.0.6 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +3 -2
  3. package/dist/scripts/__tests__/create-project.test.d.ts +2 -0
  4. package/dist/scripts/__tests__/create-project.test.d.ts.map +1 -0
  5. package/dist/scripts/__tests__/create-project.test.js +247 -0
  6. package/dist/scripts/__tests__/create-project.test.js.map +1 -0
  7. package/dist/scripts/__tests__/multi-project-estimate.test.d.ts +2 -0
  8. package/dist/scripts/__tests__/multi-project-estimate.test.d.ts.map +1 -0
  9. package/dist/scripts/__tests__/multi-project-estimate.test.js +119 -0
  10. package/dist/scripts/__tests__/multi-project-estimate.test.js.map +1 -0
  11. package/dist/scripts/__tests__/setup-existing-project.test.d.ts +2 -0
  12. package/dist/scripts/__tests__/setup-existing-project.test.d.ts.map +1 -0
  13. package/dist/scripts/__tests__/setup-existing-project.test.js +67 -0
  14. package/dist/scripts/__tests__/setup-existing-project.test.js.map +1 -0
  15. package/dist/scripts/__tests__/setup-interactive.test.d.ts +2 -0
  16. package/dist/scripts/__tests__/setup-interactive.test.d.ts.map +1 -0
  17. package/dist/scripts/__tests__/setup-interactive.test.js +160 -0
  18. package/dist/scripts/__tests__/setup-interactive.test.js.map +1 -0
  19. package/dist/scripts/config/default-config.json +57 -0
  20. package/dist/scripts/confluence-sync.d.ts +4 -0
  21. package/dist/scripts/confluence-sync.d.ts.map +1 -1
  22. package/dist/scripts/confluence-sync.js +12 -23
  23. package/dist/scripts/confluence-sync.js.map +1 -1
  24. package/dist/scripts/create-project.js +198 -137
  25. package/dist/scripts/create-project.js.map +1 -1
  26. package/dist/scripts/jira-sync.d.ts.map +1 -1
  27. package/dist/scripts/jira-sync.js +15 -0
  28. package/dist/scripts/jira-sync.js.map +1 -1
  29. package/dist/scripts/list-projects.d.ts.map +1 -1
  30. package/dist/scripts/list-projects.js +42 -15
  31. package/dist/scripts/list-projects.js.map +1 -1
  32. package/dist/scripts/multi-project-estimate.d.ts.map +1 -1
  33. package/dist/scripts/multi-project-estimate.js +56 -21
  34. package/dist/scripts/multi-project-estimate.js.map +1 -1
  35. package/dist/scripts/resource-dashboard.d.ts.map +1 -1
  36. package/dist/scripts/resource-dashboard.js +74 -17
  37. package/dist/scripts/resource-dashboard.js.map +1 -1
  38. package/dist/scripts/setup-existing-project.js +248 -214
  39. package/dist/scripts/setup-existing-project.js.map +1 -1
  40. package/dist/scripts/setup-interactive.d.ts +10 -0
  41. package/dist/scripts/setup-interactive.d.ts.map +1 -0
  42. package/dist/scripts/setup-interactive.js +413 -0
  43. package/dist/scripts/setup-interactive.js.map +1 -0
  44. package/dist/scripts/utils/__tests__/config-validator.test.js +5 -0
  45. package/dist/scripts/utils/__tests__/config-validator.test.js.map +1 -1
  46. package/dist/scripts/utils/__tests__/spec-updater.test.d.ts +5 -0
  47. package/dist/scripts/utils/__tests__/spec-updater.test.d.ts.map +1 -0
  48. package/dist/scripts/utils/__tests__/spec-updater.test.js +158 -0
  49. package/dist/scripts/utils/__tests__/spec-updater.test.js.map +1 -0
  50. package/dist/scripts/utils/confluence-hierarchy.d.ts +2 -1
  51. package/dist/scripts/utils/confluence-hierarchy.d.ts.map +1 -1
  52. package/dist/scripts/utils/confluence-hierarchy.js +5 -0
  53. package/dist/scripts/utils/confluence-hierarchy.js.map +1 -1
  54. package/dist/scripts/utils/project-finder.d.ts +30 -0
  55. package/dist/scripts/utils/project-finder.d.ts.map +1 -0
  56. package/dist/scripts/utils/project-finder.js +147 -0
  57. package/dist/scripts/utils/project-finder.js.map +1 -0
  58. package/dist/scripts/utils/spec-updater.d.ts +72 -0
  59. package/dist/scripts/utils/spec-updater.d.ts.map +1 -0
  60. package/dist/scripts/utils/spec-updater.js +141 -0
  61. package/dist/scripts/utils/spec-updater.js.map +1 -0
  62. package/dist/src/cli.d.ts.map +1 -1
  63. package/dist/src/cli.js +30 -7
  64. package/dist/src/cli.js.map +1 -1
  65. package/dist/vitest.config.d.ts.map +1 -1
  66. package/dist/vitest.config.js +8 -6
  67. package/dist/vitest.config.js.map +1 -1
  68. package/docs/README.md +2 -2
  69. package/docs/contributing/development.md +37 -0
  70. package/docs/getting-started/{new-project-setup.md → new-repository-setup.md} +66 -19
  71. package/docs/getting-started/setup.md +305 -182
  72. package/docs/guides/customization.md +1 -1
  73. package/docs/guides/multi-project.md +11 -8
  74. package/docs/reference/quick-reference.md +2 -2
  75. package/docs/testing-strategy.md +87 -0
  76. package/package.json +17 -5
  77. package/scripts/__tests__/create-project.test.ts +292 -0
  78. package/scripts/__tests__/multi-project-estimate.test.ts +145 -0
  79. package/scripts/__tests__/setup-existing-project.test.ts +79 -0
  80. package/scripts/__tests__/setup-interactive.test.ts +199 -0
  81. package/scripts/confluence-sync.ts +17 -29
  82. package/scripts/copy-static-assets.js +50 -0
  83. package/scripts/create-project.ts +219 -156
  84. package/scripts/jira-sync.ts +16 -1
  85. package/scripts/list-projects.ts +51 -24
  86. package/scripts/multi-project-estimate.ts +58 -22
  87. package/scripts/resource-dashboard.ts +91 -26
  88. package/scripts/setup-existing-project.ts +264 -223
  89. package/scripts/setup-existing.sh +29 -22
  90. package/scripts/setup-interactive.ts +565 -0
  91. package/scripts/utils/__tests__/config-validator.test.ts +6 -0
  92. package/scripts/utils/__tests__/spec-updater.test.ts +220 -0
  93. package/scripts/utils/confluence-hierarchy.ts +7 -1
  94. package/scripts/utils/project-finder.ts +184 -0
  95. package/scripts/utils/spec-updater.ts +212 -0
@@ -0,0 +1,141 @@
1
+ /**
2
+ * spec.json 更新ユーティリティ
3
+ * Confluence/JIRA 同期後に spec.json を更新する
4
+ */
5
+ import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'fs';
6
+ import { resolve } from 'path';
7
+ /**
8
+ * spec.json を読み込む
9
+ */
10
+ export function loadSpecJson(featureName, projectRoot = process.cwd()) {
11
+ const specPath = resolve(projectRoot, `.kiro/specs/${featureName}/spec.json`);
12
+ if (!existsSync(specPath)) {
13
+ // 新規作成する場合は最低限の構造を返す
14
+ return {
15
+ featureName,
16
+ confluence: {},
17
+ jira: {},
18
+ milestones: {},
19
+ };
20
+ }
21
+ try {
22
+ const content = readFileSync(specPath, 'utf-8');
23
+ return JSON.parse(content);
24
+ }
25
+ catch (error) {
26
+ console.warn(`⚠️ Failed to load spec.json from ${specPath}: ${error instanceof Error ? error.message : 'Unknown error'}`);
27
+ return {
28
+ featureName,
29
+ confluence: {},
30
+ jira: {},
31
+ milestones: {},
32
+ };
33
+ }
34
+ }
35
+ /**
36
+ * spec.json を保存する
37
+ * @param featureName 機能名
38
+ * @param spec 保存する spec オブジェクト(lastUpdated フィールドが更新されます)
39
+ * @param projectRoot プロジェクトルート(デフォルト: process.cwd())
40
+ */
41
+ export function saveSpecJson(featureName, spec, projectRoot = process.cwd()) {
42
+ const specDir = resolve(projectRoot, `.kiro/specs/${featureName}`);
43
+ const specPath = resolve(specDir, 'spec.json');
44
+ // ディレクトリが存在しない場合は作成
45
+ if (!existsSync(specDir)) {
46
+ mkdirSync(specDir, { recursive: true });
47
+ }
48
+ // lastUpdated を更新
49
+ spec.lastUpdated = new Date().toISOString();
50
+ try {
51
+ writeFileSync(specPath, JSON.stringify(spec, null, 2), 'utf-8');
52
+ console.log(`✅ Updated spec.json: ${specPath}`);
53
+ }
54
+ catch (error) {
55
+ console.error(`❌ Failed to save spec.json to ${specPath}: ${error instanceof Error ? error.message : 'Unknown error'}`);
56
+ throw error;
57
+ }
58
+ }
59
+ /**
60
+ * Confluence 同期後に spec.json を更新
61
+ */
62
+ export function updateSpecJsonAfterConfluenceSync(featureName, docType, pageInfo, projectRoot = process.cwd()) {
63
+ const spec = loadSpecJson(featureName, projectRoot);
64
+ // Confluence 情報を更新
65
+ if (!spec.confluence) {
66
+ spec.confluence = {};
67
+ }
68
+ // スペースキーを設定
69
+ if (pageInfo.spaceKey) {
70
+ spec.confluence.spaceKey = pageInfo.spaceKey;
71
+ }
72
+ // 新形式:ドキュメントタイプごとのページ情報を更新
73
+ spec.confluence[docType] = {
74
+ pageId: pageInfo.pageId,
75
+ url: pageInfo.url,
76
+ title: pageInfo.title,
77
+ };
78
+ // 旧形式(後方互換性のため併記)
79
+ if (docType === 'requirements') {
80
+ spec.confluence.requirementsPageId = pageInfo.pageId;
81
+ spec.confluence.requirementsUrl = pageInfo.url;
82
+ }
83
+ else if (docType === 'design') {
84
+ spec.confluence.designPageId = pageInfo.pageId;
85
+ spec.confluence.designUrl = pageInfo.url;
86
+ }
87
+ else if (docType === 'tasks') {
88
+ spec.confluence.tasksPageId = pageInfo.pageId;
89
+ spec.confluence.tasksUrl = pageInfo.url;
90
+ }
91
+ // マイルストーンを更新
92
+ if (!spec.milestones) {
93
+ spec.milestones = {};
94
+ }
95
+ // 新形式:フラットなフィールド
96
+ if (docType === 'requirements') {
97
+ spec.milestones.requirementsCompleted = true;
98
+ // 旧形式(後方互換性のため併記)
99
+ if (!spec.milestones.requirements) {
100
+ spec.milestones.requirements = {};
101
+ }
102
+ spec.milestones.requirements.completed = true;
103
+ }
104
+ else if (docType === 'design') {
105
+ spec.milestones.designCompleted = true;
106
+ // 旧形式(後方互換性のため併記)
107
+ if (!spec.milestones.design) {
108
+ spec.milestones.design = {};
109
+ }
110
+ spec.milestones.design.completed = true;
111
+ }
112
+ else if (docType === 'tasks') {
113
+ spec.milestones.tasksCompleted = true;
114
+ // 旧形式(後方互換性のため併記)
115
+ if (!spec.milestones.tasks) {
116
+ spec.milestones.tasks = {};
117
+ }
118
+ spec.milestones.tasks.completed = true;
119
+ }
120
+ saveSpecJson(featureName, spec, projectRoot);
121
+ }
122
+ /**
123
+ * JIRA 同期後に spec.json を更新
124
+ */
125
+ export function updateSpecJsonAfterJiraSync(featureName, jiraInfo, projectRoot = process.cwd()) {
126
+ const spec = loadSpecJson(featureName, projectRoot);
127
+ // JIRA 情報を更新
128
+ spec.jira = {
129
+ projectKey: jiraInfo.projectKey,
130
+ epicKey: jiraInfo.epicKey,
131
+ epicUrl: jiraInfo.epicUrl,
132
+ storyKeys: jiraInfo.storyKeys,
133
+ };
134
+ // マイルストーンを更新
135
+ if (!spec.milestones) {
136
+ spec.milestones = {};
137
+ }
138
+ spec.milestones.jiraSyncCompleted = true;
139
+ saveSpecJson(featureName, spec, projectRoot);
140
+ }
141
+ //# sourceMappingURL=spec-updater.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-updater.js","sourceRoot":"","sources":["../../../scripts/utils/spec-updater.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoCpC;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CA2LnC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6CpC;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CA2LnC"}
package/dist/src/cli.js CHANGED
@@ -4,6 +4,8 @@
4
4
  * AI駆動開発ワークフロー自動化コマンドラインツール
5
5
  */
6
6
  import { Command } from 'commander';
7
+ import { fileURLToPath } from 'url';
8
+ import { realpathSync } from 'fs';
7
9
  import { syncTasksToJIRA } from '../scripts/jira-sync.js';
8
10
  import { syncToConfluence } from '../scripts/confluence-sync.js';
9
11
  import { runPhase } from '../scripts/phase-runner.js';
@@ -15,12 +17,19 @@ import { WorkflowOrchestrator } from '../scripts/workflow-orchestrator.js';
15
17
  import { configInteractive } from '../scripts/config-interactive.js';
16
18
  import { validateAndReport } from '../scripts/utils/config-validator.js';
17
19
  import { config } from 'dotenv';
20
+ import { readFileSync, existsSync } from 'fs';
21
+ import { dirname, join } from 'path';
22
+ // package.jsonからバージョンを読み込む
23
+ // コンパイル後は dist/src/cli.js から実行されるため、2階層上がる必要がある
24
+ // テスト環境では src/cli.ts から直接実行されるため、process.cwd()も考慮する
25
+ const __filename = fileURLToPath(import.meta.url);
26
+ const __dirname = dirname(__filename);
27
+ // まず、コンパイル後のパス(dist/src/cli.js)を試す
28
+ const distPath = join(__dirname, '..', '..', 'package.json');
29
+ const packageJsonPath = existsSync(distPath) ? distPath : join(process.cwd(), 'package.json');
30
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
18
31
  // 環境変数読み込み
19
32
  config();
20
- const packageJson = {
21
- name: '@michi/cli',
22
- version: '1.0.0'
23
- };
24
33
  /**
25
34
  * 環境変数から承認ゲートのロールリストを取得
26
35
  * @param envVar 環境変数名
@@ -222,8 +231,22 @@ export function createCLI() {
222
231
  return program;
223
232
  }
224
233
  // CLI実行(直接実行時)
225
- if (import.meta.url === `file://${process.argv[1]}`) {
226
- const program = createCLI();
227
- program.parse();
234
+ // import.meta.urlprocess.argv[1]を正規化して比較(シンボリックリンク対応)
235
+ if (process.argv[1]) {
236
+ try {
237
+ const currentFile = fileURLToPath(import.meta.url);
238
+ const executedFile = realpathSync(process.argv[1]);
239
+ if (currentFile === executedFile) {
240
+ const program = createCLI();
241
+ program.parse();
242
+ }
243
+ }
244
+ catch {
245
+ // realpathSyncが失敗した場合は、直接比較を試みる
246
+ if (fileURLToPath(import.meta.url) === process.argv[1]) {
247
+ const program = createCLI();
248
+ program.parse();
249
+ }
250
+ }
228
251
  }
229
252
  //# sourceMappingURL=cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"vitest.config.d.ts","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":";AAEA,wBA8BG"}
1
+ {"version":3,"file":"vitest.config.d.ts","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":";AAEA,wBAgCG"}
@@ -18,14 +18,16 @@ export default defineConfig({
18
18
  '**/*.config.ts',
19
19
  '**/scripts/setup-*.ts',
20
20
  '**/scripts/setup-*.sh',
21
+ '**/scripts/setup-interactive.ts',
21
22
  ],
22
23
  thresholds: {
23
- // 段階的に引き上げる計画(Phase 1: 10%, Phase 2: 60%, Phase 3: 80%)
24
- // Vitest 4移行後、一時的に10%に下げる(CI失敗を防ぐため)
25
- lines: 10,
26
- functions: 10,
27
- branches: 15, // Vitest 4移行後、一時的に15%に下げる
28
- statements: 10,
24
+ // 段階的に引き上げる計画(Phase 1: 10% Phase 2: 30% Phase 3: 60% → Phase 4: 80%)
25
+ // 主要機能のテスト追加により30%を目標
26
+ // 新機能追加時は一時的に閾値を下げる(Issue #33対応)
27
+ lines: 20,
28
+ functions: 15,
29
+ branches: 15,
30
+ statements: 20,
29
31
  },
30
32
  },
31
33
  },
@@ -1 +1 @@
1
- {"version":3,"file":"vitest.config.js","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,eAAe,YAAY,CAAC;IAC1B,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,MAAM;QACnB,8BAA8B;QAC9B,OAAO,EAAE,CAAC,oBAAoB,EAAE,YAAY,EAAE,qCAAqC,CAAC;QACpF,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC1C,OAAO,EAAE;gBACP,eAAe;gBACf,OAAO;gBACP,cAAc;gBACd,cAAc;gBACd,iBAAiB;gBACjB,WAAW;gBACX,gBAAgB;gBAChB,uBAAuB;gBACvB,uBAAuB;aACxB;YACD,UAAU,EAAE;gBACV,wDAAwD;gBACxD,qCAAqC;gBACrC,KAAK,EAAE,EAAE;gBACT,SAAS,EAAE,EAAE;gBACb,QAAQ,EAAE,EAAE,EAAE,0BAA0B;gBACxC,UAAU,EAAE,EAAE;aACf;SACF;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"vitest.config.js","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,eAAe,YAAY,CAAC;IAC1B,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,MAAM;QACnB,8BAA8B;QAC9B,OAAO,EAAE,CAAC,oBAAoB,EAAE,YAAY,EAAE,qCAAqC,CAAC;QACpF,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC1C,OAAO,EAAE;gBACP,eAAe;gBACf,OAAO;gBACP,cAAc;gBACd,cAAc;gBACd,iBAAiB;gBACjB,WAAW;gBACX,gBAAgB;gBAChB,uBAAuB;gBACvB,uBAAuB;gBACvB,iCAAiC;aAClC;YACD,UAAU,EAAE;gBACV,yEAAyE;gBACzE,sBAAsB;gBACtB,iCAAiC;gBACjC,KAAK,EAAE,EAAE;gBACT,SAAS,EAAE,EAAE;gBACb,QAAQ,EAAE,EAAE;gBACZ,UAAU,EAAE,EAAE;aACf;SACF;KACF;CACF,CAAC,CAAC"}
package/docs/README.md CHANGED
@@ -14,7 +14,7 @@ Michiのドキュメントは、目的別に以下のカテゴリに整理され
14
14
  |------------|------|
15
15
  | [セットアップガイド](./getting-started/setup.md) | Michiのインストールと設定手順 |
16
16
  | [クイックスタート](./getting-started/quick-start.md) | 5分で始めるMichi |
17
- | [新規プロジェクト作成](./getting-started/new-project-setup.md) | 他のリポジトリでMichiを使い始める方法 |
17
+ | [新規リポジトリ作成](./getting-started/new-repository-setup.md) | 新規リポジトリを作成してMichiを使い始める方法 |
18
18
 
19
19
  ### 📖 実践ガイド ([guides/](./guides/))
20
20
 
@@ -61,7 +61,7 @@ Michiプロジェクトに貢献したい開発者向けのガイドです。
61
61
 
62
62
  ### Michiを別のプロジェクトで使う場合
63
63
 
64
- 1. [新規プロジェクト作成](./getting-started/new-project-setup.md) - 他のリポジトリでの始め方
64
+ 1. [新規リポジトリ作成](./getting-started/new-repository-setup.md) - 新規リポジトリでの始め方
65
65
  2. [クイックリファレンス](./reference/quick-reference.md) - コマンド一覧を確認
66
66
 
67
67
  ### Confluence/JIRAの設定をカスタマイズする場合
@@ -174,6 +174,43 @@ npm run lint:fix
174
174
  npm run format
175
175
  ```
176
176
 
177
+ ## 8-1. Pre-commitフック(自動リント・テスト)
178
+
179
+ このプロジェクトでは、**husky**と**lint-staged**を使用して、コミット前に自動的にリントとテストを実行します。
180
+
181
+ ### 動作
182
+
183
+ コミットを実行すると、以下の処理が自動的に実行されます:
184
+
185
+ 1. **lint-staged**: ステージングされたファイルに対して自動リント・フォーマット
186
+ - TypeScript/JavaScriptファイル: ESLint自動修正 + Prettierフォーマット
187
+ - JSON/Markdown/YAMLファイル: Prettierフォーマット
188
+ 2. **テスト実行**: すべてのテストを実行(`npm run test:run`)
189
+
190
+ ### フックをスキップする場合(非推奨)
191
+
192
+ 緊急時のみ、以下の方法でフックをスキップできます:
193
+
194
+ ```bash
195
+ # Gitの場合
196
+ git commit --no-verify -m "緊急修正"
197
+
198
+ # Jujutsuの場合
199
+ jj commit --no-verify -m "緊急修正"
200
+ ```
201
+
202
+ **注意**: フックをスキップしたコミットは、CI/CDで失敗する可能性があります。
203
+
204
+ ### フックの設定確認
205
+
206
+ ```bash
207
+ # pre-commitフックの内容を確認
208
+ cat .husky/pre-commit
209
+
210
+ # lint-stagedの設定を確認
211
+ cat package.json | grep -A 10 "lint-staged"
212
+ ```
213
+
177
214
  ## 9. ビルドとパッケージング
178
215
 
179
216
  ### TypeScriptビルド
@@ -1,8 +1,8 @@
1
- # 新規プロジェクトセットアップガイド
1
+ # 新規リポジトリセットアップガイド
2
2
 
3
3
  > **凡例について**: `<feature>` などの記号の意味は [README.md#凡例の記号説明](../README.md#凡例の記号説明) を参照してください。
4
4
 
5
- 別のリポジトリで新しいプロジェクトを開始する手順です。
5
+ 新規リポジトリを作成してMichiを使い始める手順です。
6
6
 
7
7
  ## クイックスタート
8
8
 
@@ -29,12 +29,15 @@ npm run create-project -- \
29
29
 
30
30
  スクリプトが自動的に:
31
31
  1. GitHub リポジトリ作成
32
- 2. cc-sdd 導入
33
- 3. `.kiro/project.json` 作成
34
- 4. 共通ファイルコピー
35
- 5. `.env` テンプレート作成
36
- 6. npm install
37
- 7. 初期コミット・プッシュ
32
+ 2. `projects/{project-id}/`ディレクトリ作成
33
+ 3. cc-sdd 導入
34
+ 4. `projects/{project-id}/.kiro/project.json` 作成
35
+ 5. 共通ファイルコピー
36
+ 6. `projects/{project-id}/.env` テンプレート作成
37
+ 7. npm install(リポジトリルートで実行)
38
+ 8. 初期コミット・プッシュ
39
+
40
+ **重要**: すべてのプロジェクトは`projects/{project-id}/`配下に配置されます。
38
41
 
39
42
  ### 方法2: 既存プロジェクトにMichiワークフローを追加(推奨 - 既存リポジトリ)
40
43
 
@@ -49,12 +52,16 @@ bash /path/to/michi/scripts/setup-existing.sh
49
52
  ```
50
53
 
51
54
  対話式でプロジェクト情報を入力すると、自動的に:
52
- 1. ✅ cc-sdd 導入確認・インストール
53
- 2. ✅ `.kiro/project.json` 作成
54
- 3. ✅ Michiから共通ファイルコピー(ルール、コマンド、テンプレート)
55
- 4. ✅ `.env` テンプレート作成
56
- 5. ✅ README.md と .gitignore 更新
57
- 6. ✅ CLIツールのセットアップ案内
55
+ 1. ✅ リポジトリルートを検出
56
+ 2. ✅ `projects/{project-id}/`ディレクトリ作成
57
+ 3. ✅ cc-sdd 導入確認・インストール
58
+ 4. ✅ `projects/{project-id}/.kiro/project.json` 作成
59
+ 5. ✅ Michiから共通ファイルコピー(ルール、コマンド、テンプレート)
60
+ 6. ✅ `projects/{project-id}/.env` テンプレート作成
61
+ 7. ✅ README.md と .gitignore 更新(リポジトリルート)
62
+ 8. ✅ CLIツールのセットアップ案内
63
+
64
+ **重要**: すべてのプロジェクトは`projects/{project-id}/`配下に配置されます。
58
65
 
59
66
  **完了後**:
60
67
  ```bash
@@ -159,7 +166,7 @@ npx cc-sdd@latest --cursor --lang ja --yes
159
166
  - `projectId: 'michi'` → `['project:michi']`(サービスラベルなし)
160
167
  - `projectId: '20240115-payment-api'` → `['project:20240115-payment-api', 'service:payment']`
161
168
  - `projectId: 'michi-service'` → `['project:michi-service']`(サービスラベルがプロジェクトラベルと同一のため追加しない)
162
- ### Step 4: Michiから共通設定をコピー
169
+ ### Step 5: Michiから共通設定をコピー
163
170
 
164
171
  Michiリポジトリから必要なファイルをコピー:
165
172
 
@@ -185,9 +192,40 @@ cp $MICHI_PATH/.kiro/steering/*.md .kiro/steering/
185
192
  cp $MICHI_PATH/tsconfig.json .
186
193
  ```
187
194
 
188
- ### Step 5: 環境変数設定
195
+ ### Step 6: 環境変数設定
196
+
197
+ **重要**: `.env`ファイルは`projects/{project-id}/`配下に作成します。
198
+
199
+ #### 方法A: 対話的設定ツールを使用(推奨)
200
+
201
+ 対話的設定ツールを使用すると、`project.json`と`.env`を一度に設定できます:
189
202
 
190
203
  ```bash
204
+ # リポジトリルートから実行
205
+ cd /path/to/repository
206
+ npm run setup:interactive
207
+
208
+ # または直接実行
209
+ npx tsx /path/to/michi/scripts/setup-interactive.ts
210
+ ```
211
+
212
+ **機能**:
213
+ - `project.json`と`.env`を対話的に設定
214
+ - 既存の設定値を読み込んで編集可能
215
+ - 複数プロジェクトが存在する場合、プロジェクトを選択可能
216
+ - 必須項目のバリデーション
217
+ - 新規プロジェクトの場合、`projects/{project-id}/`配下に自動作成
218
+
219
+ 詳細は [セットアップガイド](./setup.md#対話的設定ツール) を参照してください。
220
+
221
+ #### 方法B: 手動で.envファイルを作成
222
+
223
+ 対話的設定ツールを使用しない場合は、手動で`.env`ファイルを作成します:
224
+
225
+ ```bash
226
+ # プロジェクトディレクトリに移動
227
+ cd projects/20240115-payment-api
228
+
191
229
  # .env テンプレート作成
192
230
  cat > .env << 'EOF'
193
231
  # Atlassian設定(MCP + REST API共通)
@@ -213,17 +251,26 @@ EOF
213
251
  # .env ファイルを編集してください
214
252
  ```
215
253
 
216
- ### Step 6: 依存関係インストール
254
+ ### Step 7: 依存関係インストール
255
+
256
+ **重要**: `package.json`と`tsconfig.json`はリポジトリルートに配置します。`npm install`はリポジトリルートで実行してください。
217
257
 
218
258
  ```bash
259
+ # リポジトリルートに移動
260
+ cd /path/to/repository
261
+
262
+ # 依存関係をインストール
219
263
  npm install
220
264
  ```
221
265
 
222
- ### Step 7: 動作確認
266
+ ### Step 8: 動作確認
223
267
 
224
268
  #### Jujutsu (jj) を使用する場合
225
269
 
226
270
  ```bash
271
+ # プロジェクトディレクトリに移動
272
+ cd projects/20240115-payment-api
273
+
227
274
  # プロジェクト情報を表示
228
275
  cat .kiro/project.json
229
276
 
@@ -251,7 +298,7 @@ git branch -M main
251
298
  git remote add origin https://github.com/your-org/20240115-payment-api.git
252
299
  ```
253
300
 
254
- ### Step 8: 初期コミット
301
+ ### Step 9: 初期コミット
255
302
 
256
303
  #### Jujutsu (jj) を使用する場合
257
304