@sk8metal/michi-cli 0.10.1 → 0.12.0

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 (139) hide show
  1. package/README.md +71 -848
  2. package/dist/scripts/constants/environments.d.ts +1 -1
  3. package/dist/scripts/constants/environments.d.ts.map +1 -1
  4. package/dist/scripts/constants/environments.js +0 -20
  5. package/dist/scripts/constants/environments.js.map +1 -1
  6. package/dist/scripts/phase-runner.js +1 -1
  7. package/dist/scripts/phase-runner.js.map +1 -1
  8. package/dist/scripts/utils/multi-repo-validator.d.ts +18 -0
  9. package/dist/scripts/utils/multi-repo-validator.d.ts.map +1 -1
  10. package/dist/scripts/utils/multi-repo-validator.js +42 -0
  11. package/dist/scripts/utils/multi-repo-validator.js.map +1 -1
  12. package/dist/scripts/utils/tasks-format-validator.js +3 -3
  13. package/dist/scripts/utils/tasks-format-validator.js.map +1 -1
  14. package/dist/scripts/utils/template-finder.d.ts +2 -2
  15. package/dist/scripts/utils/template-finder.d.ts.map +1 -1
  16. package/dist/scripts/utils/template-finder.js +3 -8
  17. package/dist/scripts/utils/template-finder.js.map +1 -1
  18. package/dist/src/cli.d.ts.map +1 -1
  19. package/dist/src/cli.js +0 -8
  20. package/dist/src/cli.js.map +1 -1
  21. package/dist/src/commands/init.d.ts +0 -4
  22. package/dist/src/commands/init.d.ts.map +1 -1
  23. package/dist/src/commands/init.js +6 -30
  24. package/dist/src/commands/init.js.map +1 -1
  25. package/dist/src/commands/setup-existing.d.ts +2 -6
  26. package/dist/src/commands/setup-existing.d.ts.map +1 -1
  27. package/dist/src/commands/setup-existing.js +8 -142
  28. package/dist/src/commands/setup-existing.js.map +1 -1
  29. package/docs/README.md +20 -83
  30. package/docs/getting-started/configuration.md +350 -0
  31. package/docs/getting-started/installation.md +59 -0
  32. package/docs/getting-started/quick-start.md +76 -0
  33. package/docs/guides/atlassian-integration.md +116 -0
  34. package/docs/guides/claude-code.md +155 -0
  35. package/docs/guides/multi-repo.md +117 -0
  36. package/docs/guides/workflow.md +382 -0
  37. package/docs/reference/ai-commands.md +92 -0
  38. package/docs/reference/cli.md +752 -0
  39. package/docs/reference/environment-variables.md +192 -0
  40. package/docs/troubleshooting.md +498 -0
  41. package/package.json +1 -3
  42. package/scripts/__tests__/create-project.test.ts +12 -12
  43. package/scripts/__tests__/setup-existing-project.test.ts +22 -22
  44. package/scripts/constants/__tests__/environments.test.ts +7 -50
  45. package/scripts/constants/environments.ts +1 -27
  46. package/scripts/phase-runner.ts +1 -1
  47. package/scripts/template/__tests__/renderer.test.ts +21 -21
  48. package/scripts/utils/__tests__/multi-repo-validator.test.ts +159 -1
  49. package/scripts/utils/multi-repo-validator.ts +50 -0
  50. package/scripts/utils/tasks-format-validator.ts +3 -3
  51. package/scripts/utils/template-finder.ts +5 -11
  52. package/templates/claude/agents/e2e-first-planner/AGENT.md +1 -1
  53. package/templates/claude/agents/pr-resolver/AGENT.md +15 -3
  54. package/templates/claude/commands/michi/e2e-plan.md +1 -1
  55. package/templates/claude/commands/michi/spec-design.md +2 -2
  56. package/templates/claude/commands/michi/spec-tasks.md +156 -0
  57. package/templates/claude/commands/michi/test-planning.md +1 -1
  58. package/templates/claude/commands/michi/validate-design.md +3 -3
  59. package/templates/claude/commands/michi-multi-repo/impl-all.md +30 -1
  60. package/templates/claude/commands/michi-multi-repo/propagate-specs.md +14 -1
  61. package/templates/claude/commands/michi-multi-repo/spec-review.md +16 -2
  62. package/templates/claude-agent/agents/repo-spec-executor.md +1 -1
  63. package/templates/claude-agent/commands/michi/spec-tasks.md +117 -0
  64. package/templates/claude-agent/rules/code-size-monitor.md +26 -0
  65. package/templates/claude-agent/rules/code-size-rules.md +32 -0
  66. package/templates/michi/cc-sdd-overrides/settings/rules/design-review-michi.md +1 -1
  67. package/docs/context.md +0 -59
  68. package/docs/michi-development/contributing/development.md +0 -341
  69. package/docs/michi-development/contributing/release.md +0 -365
  70. package/docs/michi-development/design/config-unification.md +0 -733
  71. package/docs/michi-development/design/design-config-current-state.md +0 -330
  72. package/docs/michi-development/design/design-config-implementation.md +0 -628
  73. package/docs/michi-development/design/design-config-migration.md +0 -952
  74. package/docs/michi-development/design/design-config-security.md +0 -771
  75. package/docs/michi-development/design/design-config-solution.md +0 -583
  76. package/docs/michi-development/design/design-config-testing.md +0 -892
  77. package/docs/michi-development/testing/manual-verification-flow.md +0 -871
  78. package/docs/michi-development/testing/manual-verification-other-tools.md +0 -1279
  79. package/docs/michi-development/testing/manual-verification-troubleshooting.md +0 -122
  80. package/docs/michi-development/testing/pre-publish-checklist.md +0 -560
  81. package/docs/michi-development/testing-strategy.md +0 -87
  82. package/docs/plan.md +0 -275
  83. package/docs/user-guide/getting-started/github-token-setup.md +0 -510
  84. package/docs/user-guide/getting-started/new-repository-setup.md +0 -704
  85. package/docs/user-guide/getting-started/quick-start.md +0 -212
  86. package/docs/user-guide/getting-started/setup.md +0 -819
  87. package/docs/user-guide/guides/agent-skills-integration.md +0 -222
  88. package/docs/user-guide/guides/customization.md +0 -537
  89. package/docs/user-guide/guides/internationalization.md +0 -540
  90. package/docs/user-guide/guides/migration-guide.md +0 -138
  91. package/docs/user-guide/guides/multi-project.md +0 -368
  92. package/docs/user-guide/guides/multi-repo-guide.md +0 -1590
  93. package/docs/user-guide/guides/phase-automation.md +0 -419
  94. package/docs/user-guide/guides/workflow.md +0 -574
  95. package/docs/user-guide/hands-on/README.md +0 -142
  96. package/docs/user-guide/hands-on/claude-agent-setup.md +0 -597
  97. package/docs/user-guide/hands-on/claude-setup.md +0 -452
  98. package/docs/user-guide/hands-on/cursor-setup.md +0 -353
  99. package/docs/user-guide/hands-on/troubleshooting.md +0 -964
  100. package/docs/user-guide/hands-on/verification-checklist.md +0 -439
  101. package/docs/user-guide/hands-on/workflow-walkthrough.md +0 -1078
  102. package/docs/user-guide/reference/config.md +0 -589
  103. package/docs/user-guide/reference/multi-repo-api.md +0 -771
  104. package/docs/user-guide/reference/quick-reference.md +0 -297
  105. package/docs/user-guide/reference/security-test-payloads.md +0 -50
  106. package/docs/user-guide/reference/tasks-template.md +0 -550
  107. package/docs/user-guide/release/ci-setup-java.md +0 -114
  108. package/docs/user-guide/release/ci-setup-nodejs.md +0 -94
  109. package/docs/user-guide/release/ci-setup-php.md +0 -102
  110. package/docs/user-guide/release/ci-setup-troubleshooting.md +0 -94
  111. package/docs/user-guide/release/ci-setup.md +0 -188
  112. package/docs/user-guide/release/release-flow.md +0 -476
  113. package/docs/user-guide/templates/test-specs/README.md +0 -173
  114. package/docs/user-guide/templates/test-specs/e2e-test-spec-template.md +0 -553
  115. package/docs/user-guide/templates/test-specs/integration-test-spec-template.md +0 -435
  116. package/docs/user-guide/templates/test-specs/performance-test-spec-template.md +0 -454
  117. package/docs/user-guide/templates/test-specs/security-test-spec-template.md +0 -625
  118. package/docs/user-guide/templates/test-specs/unit-test-spec-template.md +0 -328
  119. package/docs/user-guide/testing/integration-tests.md +0 -312
  120. package/docs/user-guide/testing/tdd-cycle.md +0 -349
  121. package/docs/user-guide/testing/test-execution-flow.md +0 -396
  122. package/docs/user-guide/testing/test-failure-handling.md +0 -521
  123. package/docs/user-guide/testing/test-planning-flow.md +0 -185
  124. package/docs/user-guide/testing-strategy.md +0 -185
  125. package/docs/verification-guide.md +0 -518
  126. package/templates/cline/rules/atlassian-integration.md +0 -36
  127. package/templates/cline/rules/michi-core.md +0 -56
  128. package/templates/codex/AGENTS.override.md +0 -277
  129. package/templates/codex/prompts/confluence-sync.md +0 -177
  130. package/templates/codex/rules/README.md +0 -210
  131. package/templates/cursor/commands/kiro/kiro-spec-impl.md +0 -244
  132. package/templates/cursor/commands/kiro/kiro-spec-tasks.md +0 -354
  133. package/templates/cursor/commands/michi/confluence-sync.md +0 -76
  134. package/templates/cursor/commands/michi/project-switch.md +0 -69
  135. package/templates/cursor/rules/atlassian-mcp.mdc +0 -188
  136. package/templates/cursor/rules/github-ssot.mdc +0 -151
  137. package/templates/cursor/rules/multi-project.mdc +0 -81
  138. package/templates/gemini/commands/README.md +0 -41
  139. package/templates/gemini/rules/GEMINI.md +0 -80
@@ -0,0 +1,117 @@
1
+ ---
2
+ name: /michi:spec-tasks
3
+ description: Generate implementation tasks with JIRA sync option (Michi version)
4
+ allowed-tools: Read, Write, Edit, MultiEdit, Glob, Grep, Bash
5
+ argument-hint: <feature-name> [-y] [--sequential]
6
+ ---
7
+
8
+ # Michi: Spec Tasks with JIRA Sync Option
9
+
10
+ ## Base Command Reference
11
+ @.claude/commands/kiro/spec-tasks.md
12
+
13
+ ## Development Guidelines
14
+ {{DEV_GUIDELINES}}
15
+
16
+ ---
17
+
18
+ ## Michi Extension: JIRA Sync Prompt
19
+
20
+ このコマンドは cc-sdd 標準の `/kiro:spec-tasks` を拡張し、タスク生成完了後にJIRA同期オプションを提示します。
21
+
22
+ ### 機能追加内容
23
+
24
+ 1. **タスク生成完了後の次ステップ案内**:
25
+ - JIRA連携が設定されている場合: JIRA同期の選択肢(A/B/C形式)を表示
26
+ - JIRA連携が未設定の場合: 実装フェーズへの案内 + JIRA設定ヒントを表示
27
+
28
+ 2. **環境変数による条件分岐**:
29
+ - 以下の環境変数がすべて設定されている場合のみ、JIRA同期の選択肢を表示
30
+ - `ATLASSIAN_URL`
31
+ - `ATLASSIAN_EMAIL`
32
+ - `ATLASSIAN_API_TOKEN`
33
+
34
+ ---
35
+
36
+ ## タスク生成完了後のフロー
37
+
38
+ 基底コマンド `/kiro:spec-tasks` によるタスク生成が完了した後、以下のフローを実行してください:
39
+
40
+ ### Step 1: 環境変数チェック
41
+
42
+ ```bash
43
+ # JIRA連携の環境変数をチェック
44
+ if [ -n "$ATLASSIAN_URL" ] && [ -n "$ATLASSIAN_EMAIL" ] && [ -n "$ATLASSIAN_API_TOKEN" ]; then
45
+ JIRA_CONFIGURED=true
46
+ else
47
+ JIRA_CONFIGURED=false
48
+ fi
49
+ ```
50
+
51
+ ### Step 2a: JIRA連携が設定されている場合の表示
52
+
53
+ `JIRA_CONFIGURED=true` の場合、以下のメッセージと選択肢を表示:
54
+
55
+ ```
56
+ ============================================
57
+ タスク生成完了 - JIRA同期オプション
58
+ ============================================
59
+
60
+ 次のアクション:
61
+ A) JIRAにタスクを同期する(推奨: タスク管理を一元化)
62
+ → `michi jira:sync {{FEATURE_NAME}}` を実行
63
+
64
+ B) JIRAへの同期をスキップして実装に進む
65
+ → `/michi:spec-impl {{FEATURE_NAME}}` を実行
66
+
67
+ C) 何もせずにこのまま終了する
68
+
69
+ 選択 (A/B/C): _
70
+ ```
71
+
72
+ **選択肢の説明**:
73
+ - **A**: Epic/Story/Subtaskを自動作成し、タスクをJIRAに同期します
74
+ - **B**: JIRA同期をスキップして直接TDD実装フェーズに進みます
75
+ - **C**: タスク生成のみで終了し、ユーザーが手動で次のステップを選択します
76
+
77
+ ### Step 2b: JIRA連携が未設定の場合の表示
78
+
79
+ `JIRA_CONFIGURED=false` の場合、以下のメッセージを表示:
80
+
81
+ ```
82
+ ============================================
83
+ タスク生成完了
84
+ ============================================
85
+
86
+ 次のステップ:
87
+ → `/michi:spec-impl {{FEATURE_NAME}}` で実装を開始
88
+
89
+ ---
90
+ ℹ️ ヒント: JIRA連携を使用すると、タスクを自動的にJIRAに同期できます。
91
+
92
+ 設定方法: 以下の環境変数を .env に追加してください:
93
+ - ATLASSIAN_URL=https://your-domain.atlassian.net
94
+ - ATLASSIAN_EMAIL=your-email@company.com
95
+ - ATLASSIAN_API_TOKEN=your-api-token
96
+
97
+ 詳細はドキュメントを参照: docs/guides/atlassian-integration.md
98
+ ```
99
+
100
+ ---
101
+
102
+ ## 実装上の注意点
103
+
104
+ 1. **基底コマンドの実行結果を維持**:
105
+ - `/kiro:spec-tasks` の「Output Description」セクションで出力されるタスクサマリーは維持してください
106
+ - Michi Extensionの選択肢はその**後**に追加で表示します
107
+
108
+ 2. **言語設定の考慮**:
109
+ - メッセージは日本語固定(将来的にspec.jsonの言語設定に対応する可能性あり)
110
+
111
+ 3. **ユーザーインタラクション**:
112
+ - 選択肢を表示した後、ユーザーの入力を待ちます
113
+ - 選択に応じて適切なコマンド/処理を案内または実行してください
114
+
115
+ ---
116
+
117
+ **Michi 固有機能**: このコマンドは cc-sdd 標準の `/kiro:spec-tasks` を拡張し、Phase 0.6(JIRA同期)への誘導を Next Phase として案内します。これにより、タスク分割からJIRA連携へのスムーズな移行を実現します。
@@ -0,0 +1,26 @@
1
+ ---
2
+ globs:
3
+ - "src/**/*"
4
+ - "scripts/**/*"
5
+ - "test/**/*"
6
+ - "tests/**/*"
7
+ alwaysApply: false
8
+ ---
9
+
10
+ # Code Generation Size Monitoring
11
+
12
+ PROACTIVELY: /michi:spec-impl の各タスク完了後に使用。
13
+
14
+ ## Reference
15
+ @templates/claude-agent/rules/code-size-rules.md
16
+
17
+ ## Execution Timing
18
+ 1. 各sub-task完了後
19
+ 2. コミット前
20
+ 3. 長時間のコーディングセッション中(3-5ファイル変更ごと)
21
+
22
+ ## Actions on Threshold Exceeded
23
+ 500行超過時:
24
+ A) 現在の変更でPRを作成する(推奨)
25
+ B) 作業を続行する(警告付き)
26
+ C) 分割戦略を提案してもらう
@@ -0,0 +1,32 @@
1
+ # Code Size Rules
2
+
3
+ ## Threshold
4
+
5
+ | Metric | Value |
6
+ |--------|-------|
7
+ | Maximum Diff Lines | 500 lines |
8
+ | Warning Threshold | 400 lines |
9
+
10
+ ## Target Paths
11
+ - src/
12
+ - scripts/
13
+ - test/
14
+ - tests/
15
+
16
+ ## Exclusion Patterns (Lock Files)
17
+ - package-lock.json, yarn.lock, pnpm-lock.yaml
18
+ - composer.lock, Gemfile.lock, poetry.lock, Pipfile.lock
19
+ - Cargo.lock, go.sum
20
+
21
+ ## Exclusion Patterns (Generated Files)
22
+ - *.min.js, *.min.css, *.map
23
+ - dist/*, build/*, coverage/*, .next/*
24
+ - *.d.ts, *.generated.ts, `__snapshots__/*`
25
+
26
+ ## Status Indicators
27
+
28
+ | Status | Condition |
29
+ |--------|-----------|
30
+ | ✅ OK | diff < 400 lines |
31
+ | ⚠️ Warning | 400 <= diff < 500 lines |
32
+ | ❌ Exceeded | diff >= 500 lines |
@@ -44,7 +44,7 @@
44
44
  設計が承認された場合(GO Decision):
45
45
  1. Phase 0.3: テストタイプの選択を実施
46
46
  2. Phase 0.4: テスト仕様書の作成を実施
47
- 3. Phase 0.5: タスク分割(`/kiro:spec-tasks`)に進む
47
+ 3. Phase 0.5: タスク分割(`/michi:spec-tasks`)に進む
48
48
 
49
49
  詳細は [テスト計画フロー](docs/user-guide/testing/test-planning-flow.md) を参照してください。
50
50
 
package/docs/context.md DELETED
@@ -1,59 +0,0 @@
1
- # プロジェクトコンテキスト
2
-
3
- ## 現在のタスク
4
- Issue #58: テンプレートディレクトリ名の整合性修正
5
-
6
- ## 進捗状況
7
- - **開始日時**: 2025-11-17 (月)
8
- - **現在フェーズ**: Phase 0 - 計画策定
9
- - **完了率**: 0%
10
-
11
- ## タスク概要
12
-
13
- ### Issue #58: テンプレートディレクトリ名の不整合修正
14
- - **優先度**: 低(技術的負債)
15
- - **工数**: 0.5h(予想)
16
- - **ステータス**: 🔄 進行中
17
-
18
- ## 問題の詳細
19
-
20
- ### 現状
21
- - **テンプレートソース**: `templates/claude-agent/rules/`
22
- - **配置先**: `.claude/subagents`
23
-
24
- `rules`という名前のディレクトリが`subagents`という名前で配置されるため、新規開発者にとって混乱を招く。
25
-
26
- ### 影響範囲
27
- - **重大度**: 低(機能的には動作している)
28
- - **保守性**: 中(新規開発者への混乱)
29
- - **リスク**: 低(テンプレートコピーロジックのみに限定)
30
-
31
- ### 推奨解決策
32
- **Option 1** (推奨): テンプレートディレクトリをリネーム
33
- - `templates/claude-agent/rules/` → `templates/claude-agent/subagents/`
34
- - シンプルで明確、一貫性がある
35
-
36
- **Option 2**: 柔軟なテンプレート命名をサポート
37
- - `EnvironmentConfig`に`rulesDirTemplateName`を追加
38
- - より柔軟だが複雑性が増す
39
-
40
- ## 影響ファイル
41
- - `templates/claude-agent/rules/` (リネーム対象)
42
- - `src/commands/setup-existing.ts` (変数名を確認)
43
-
44
- ## 前提条件
45
- - Issue #55, #56は完了済み
46
- - 全テストスイート成功(235 passed)
47
-
48
- ## 完了条件
49
- - [ ] テンプレートディレクトリを`subagents`にリネーム
50
- - [ ] 全テストスイート成功
51
- - [ ] Lintエラーなし
52
- - [ ] ドキュメント更新(必要に応じて)
53
-
54
- ## メモ
55
- - TDD原則を遵守(既存テストで動作確認)
56
- - Option 1(リネームのみ)を採用予定
57
-
58
- ---
59
- 最終更新: 2025-11-17 (月) - Issue #58開始
@@ -1,341 +0,0 @@
1
- # Michi 開発環境セットアップガイド
2
-
3
- このガイドは、Michiプロジェクト自体の開発に貢献したい開発者向けのセットアップ手順です。
4
-
5
- Michiを使ってプロジェクト開発を始めたい場合は、[利用者向けセットアップガイド](../getting-started/setup.md)を参照してください。
6
-
7
- ## 前提条件
8
-
9
- - Node.js 20.x以上
10
- - npm 10.x以上
11
- - Git または Jujutsu (jj)
12
- - Cursor IDE または VS Code
13
- - GitHub CLI (gh) - PR作成時に使用
14
-
15
- ## 1. リポジトリのフォーク・クローン
16
-
17
- ### Gitを使う場合
18
-
19
- ```bash
20
- # リポジトリをフォーク(GitHubのWebインターフェースで実行)
21
-
22
- # フォークしたリポジトリをクローン
23
- git clone https://github.com/YOUR_USERNAME/michi
24
- cd michi
25
-
26
- # 上流リポジトリをremoteに追加
27
- git remote add upstream https://github.com/sk8metalme/michi
28
- ```
29
-
30
- ### Jujutsu (jj) を使う場合
31
-
32
- ```bash
33
- # リポジトリをクローン
34
- jj git clone https://github.com/YOUR_USERNAME/michi
35
- cd michi
36
-
37
- # 上流リポジトリを設定
38
- jj git remote add upstream https://github.com/sk8metalme/michi
39
- ```
40
-
41
- ## 2. 依存関係のインストール
42
-
43
- ```bash
44
- npm install
45
- ```
46
-
47
- ## 3. cc-sddのインストール(開発用)
48
-
49
- ```bash
50
- # Cursor IDE を使用する場合
51
- npx cc-sdd@latest --lang ja --cursor
52
-
53
- # Claude Code を使用する場合
54
- npx cc-sdd@latest --lang ja --claude
55
- ```
56
-
57
- ## 4. 環境変数の設定
58
-
59
- 開発環境でも、Confluence/JIRA連携のテストのために環境変数が必要です。
60
-
61
- ```bash
62
- # テンプレートファイルをコピー
63
- cp env.example .env
64
- ```
65
-
66
- 詳細な設定方法は、[利用者向けセットアップガイド](../getting-started/setup.md#3-環境変数の設定)を参照してください。
67
-
68
- ## 5. 開発ワークフロー
69
-
70
- ### ブランチ戦略
71
-
72
- - `main`: 本番環境相当(常にデプロイ可能な状態)
73
- - `feature/XXX`: 機能開発用
74
- - `bugfix/XXX`: バグ修正用
75
- - `docs/XXX`: ドキュメント更新用
76
-
77
- ### 開発サイクル
78
-
79
- 1. **issueを作成** または 既存のissueを確認
80
- 2. **ブランチを作成**
81
- ```bash
82
- git checkout -b feature/your-feature-name
83
- # または jj new -m "feature/your-feature-name"
84
- ```
85
- 3. **コードを実装**
86
- 4. **テストを追加・実行**
87
- 5. **コミット**
88
- 6. **PRを作成**
89
-
90
- ## 6. コーディング規約
91
-
92
- ### TypeScript
93
-
94
- - **Strict Mode**: `tsconfig.json`で厳格な型チェックを有効化
95
- - **ESLint**: すべてのコードはESLintルールに準拠
96
- - **Prettier**: コードフォーマットは自動化
97
-
98
- ### コミットメッセージ
99
-
100
- [Conventional Commits](https://www.conventionalcommits.org/)形式を使用:
101
-
102
- ```
103
- <type>(<scope>): <subject>
104
-
105
- <body>
106
-
107
- <footer>
108
- ```
109
-
110
- **Type:**
111
- - `feat`: 新機能
112
- - `fix`: バグ修正
113
- - `docs`: ドキュメント変更
114
- - `style`: コードフォーマット(ロジック変更なし)
115
- - `refactor`: リファクタリング
116
- - `test`: テスト追加・修正
117
- - `chore`: ビルドプロセスやツールの変更
118
-
119
- **例:**
120
- ```
121
- feat(confluence): Confluence階層構造のカスタマイズ機能を追加
122
-
123
- - config.jsonでhierarchy.modeを設定可能に
124
- - simple/detailedの2モードをサポート
125
-
126
- Closes #123
127
- ```
128
-
129
- ## 7. テストの実行
130
-
131
- ### 全テストを実行
132
-
133
- ```bash
134
- npm run test:run
135
- ```
136
-
137
- ### watchモードでテスト
138
-
139
- ```bash
140
- npm test
141
- ```
142
-
143
- ### カバレッジ確認
144
-
145
- ```bash
146
- npm run test:coverage
147
- ```
148
-
149
- **カバレッジ目標**: 95%以上
150
-
151
- ### 型チェック
152
-
153
- ```bash
154
- npm run type-check
155
- ```
156
-
157
- ## 8. リントとフォーマット
158
-
159
- ### リント実行
160
-
161
- ```bash
162
- npm run lint
163
- ```
164
-
165
- ### リント自動修正
166
-
167
- ```bash
168
- npm run lint:fix
169
- ```
170
-
171
- ### フォーマット
172
-
173
- ```bash
174
- npm run format
175
- ```
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
-
214
- ## 9. ビルドとパッケージング
215
-
216
- ### TypeScriptビルド
217
-
218
- ```bash
219
- npm run build
220
- ```
221
-
222
- ### ローカルでのパッケージテスト
223
-
224
- ```bash
225
- # パッケージをリンク
226
- npm link
227
-
228
- # 他のプロジェクトでテスト
229
- cd /path/to/test-project
230
- npm link @sk8metal/michi-cli
231
-
232
- # テスト後、リンクを解除
233
- npm unlink @sk8metal/michi-cli
234
- ```
235
-
236
- ## 10. PRの作成
237
-
238
- ### PR作成前のチェックリスト
239
-
240
- - [ ] すべてのテストがパス
241
- - [ ] カバレッジが95%以上
242
- - [ ] ESLintエラーが0件
243
- - [ ] TypeScript型エラーが0件
244
- - [ ] コミットメッセージがConventional Commits形式
245
- - [ ] ドキュメントを更新(必要に応じて)
246
-
247
- ### PRの作成
248
-
249
- ```bash
250
- # GitHubにプッシュ
251
- git push origin feature/your-feature-name
252
-
253
- # PRを作成
254
- gh pr create --title "feat: 機能の説明" --body "詳細な説明"
255
- ```
256
-
257
- ### Jujutsuの場合
258
-
259
- ```bash
260
- # 変更をコミット
261
- jj commit -m "feat: 機能の説明"
262
-
263
- # GitHubにプッシュ
264
- jj git push
265
-
266
- # PRを作成
267
- gh pr create --title "feat: 機能の説明" --body "詳細な説明"
268
- ```
269
-
270
- ### PRテンプレート
271
-
272
- ```markdown
273
- ## 概要
274
- 何を実装したか簡潔に説明
275
-
276
- ## 変更内容
277
- - 変更点1
278
- - 変更点2
279
-
280
- ## テスト
281
- - [ ] 単体テスト追加
282
- - [ ] E2Eテスト追加(必要に応じて)
283
- - [ ] 手動テスト実施
284
-
285
- ## チェックリスト
286
- - [ ] テストがパス
287
- - [ ] カバレッジ95%以上
288
- - [ ] ESLintエラー0件
289
- - [ ] ドキュメント更新
290
-
291
- ## 関連Issue
292
- Closes #123
293
- ```
294
-
295
- ## 11. CI/CDパイプライン
296
-
297
- プッシュすると、以下のCI/CDパイプラインが自動実行されます:
298
-
299
- - **リント**: ESLint実行
300
- - **型チェック**: TypeScriptコンパイル
301
- - **テスト**: Vitest実行
302
- - **カバレッジ**: Codecovにアップロード
303
- - **セキュリティスキャン**: npm auditとSnyk
304
-
305
- 詳細は [CI/CDガイド](./ci-cd.md) を参照してください。
306
-
307
- ## 12. トラブルシューティング
308
-
309
- ### npm install でエラーが出る
310
-
311
- キャッシュをクリア:
312
- ```bash
313
- npm cache clean --force
314
- rm -rf node_modules package-lock.json
315
- npm install
316
- ```
317
-
318
- ### テストが失敗する
319
-
320
- ```bash
321
- # キャッシュをクリア
322
- npm run test:run -- --clearCache
323
-
324
- # 特定のテストのみ実行
325
- npm run test:run -- path/to/test-file.test.ts
326
- ```
327
-
328
- ### GitHub認証エラー
329
-
330
- ```bash
331
- gh auth status
332
- gh auth login
333
- gh auth setup-git
334
- ```
335
-
336
- ## 参考リンク
337
-
338
- - [コントリビューションガイド](../../CONTRIBUTING.md)
339
- - [リリース手順](./release.md)
340
- - [CI/CD設定](./ci-cd.md)
341
- - [Jujutsu公式ドキュメント](https://martinvonz.github.io/jj/)