@sk8metal/michi-cli 0.10.1 → 0.11.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 (104) hide show
  1. package/README.md +77 -847
  2. package/dist/scripts/phase-runner.js +1 -1
  3. package/dist/scripts/phase-runner.js.map +1 -1
  4. package/dist/scripts/utils/multi-repo-validator.d.ts +18 -0
  5. package/dist/scripts/utils/multi-repo-validator.d.ts.map +1 -1
  6. package/dist/scripts/utils/multi-repo-validator.js +42 -0
  7. package/dist/scripts/utils/multi-repo-validator.js.map +1 -1
  8. package/dist/scripts/utils/tasks-format-validator.js +3 -3
  9. package/dist/scripts/utils/tasks-format-validator.js.map +1 -1
  10. package/docs/README.md +20 -83
  11. package/docs/getting-started/configuration.md +379 -0
  12. package/docs/getting-started/installation.md +59 -0
  13. package/docs/getting-started/quick-start.md +76 -0
  14. package/docs/guides/ai-tools.md +311 -0
  15. package/docs/guides/atlassian-integration.md +116 -0
  16. package/docs/guides/claude-code.md +155 -0
  17. package/docs/guides/multi-repo.md +117 -0
  18. package/docs/guides/workflow.md +382 -0
  19. package/docs/reference/ai-commands.md +92 -0
  20. package/docs/reference/cli.md +756 -0
  21. package/docs/reference/environment-variables.md +192 -0
  22. package/docs/troubleshooting.md +543 -0
  23. package/package.json +1 -1
  24. package/scripts/phase-runner.ts +1 -1
  25. package/scripts/utils/__tests__/multi-repo-validator.test.ts +159 -1
  26. package/scripts/utils/multi-repo-validator.ts +50 -0
  27. package/scripts/utils/tasks-format-validator.ts +3 -3
  28. package/templates/claude/agents/e2e-first-planner/AGENT.md +1 -1
  29. package/templates/claude/agents/pr-resolver/AGENT.md +15 -3
  30. package/templates/claude/commands/michi/e2e-plan.md +1 -1
  31. package/templates/claude/commands/michi/spec-design.md +2 -2
  32. package/templates/claude/commands/michi/spec-tasks.md +156 -0
  33. package/templates/claude/commands/michi/test-planning.md +1 -1
  34. package/templates/claude/commands/michi/validate-design.md +3 -3
  35. package/templates/claude/commands/michi-multi-repo/impl-all.md +30 -1
  36. package/templates/claude/commands/michi-multi-repo/propagate-specs.md +14 -1
  37. package/templates/claude/commands/michi-multi-repo/spec-review.md +16 -2
  38. package/templates/claude-agent/agents/repo-spec-executor.md +1 -1
  39. package/templates/claude-agent/commands/michi/spec-tasks.md +117 -0
  40. package/templates/claude-agent/rules/code-size-monitor.md +26 -0
  41. package/templates/claude-agent/rules/code-size-rules.md +32 -0
  42. package/templates/codex/AGENTS.override.md +1 -1
  43. package/templates/codex/rules/README.md +2 -2
  44. package/templates/cursor/commands/michi/spec-tasks.md +117 -0
  45. package/templates/michi/cc-sdd-overrides/settings/rules/design-review-michi.md +1 -1
  46. package/docs/context.md +0 -59
  47. package/docs/michi-development/contributing/development.md +0 -341
  48. package/docs/michi-development/contributing/release.md +0 -365
  49. package/docs/michi-development/design/config-unification.md +0 -733
  50. package/docs/michi-development/design/design-config-current-state.md +0 -330
  51. package/docs/michi-development/design/design-config-implementation.md +0 -628
  52. package/docs/michi-development/design/design-config-migration.md +0 -952
  53. package/docs/michi-development/design/design-config-security.md +0 -771
  54. package/docs/michi-development/design/design-config-solution.md +0 -583
  55. package/docs/michi-development/design/design-config-testing.md +0 -892
  56. package/docs/michi-development/testing/manual-verification-flow.md +0 -871
  57. package/docs/michi-development/testing/manual-verification-other-tools.md +0 -1279
  58. package/docs/michi-development/testing/manual-verification-troubleshooting.md +0 -122
  59. package/docs/michi-development/testing/pre-publish-checklist.md +0 -560
  60. package/docs/michi-development/testing-strategy.md +0 -87
  61. package/docs/plan.md +0 -275
  62. package/docs/user-guide/getting-started/github-token-setup.md +0 -510
  63. package/docs/user-guide/getting-started/new-repository-setup.md +0 -704
  64. package/docs/user-guide/getting-started/quick-start.md +0 -212
  65. package/docs/user-guide/getting-started/setup.md +0 -819
  66. package/docs/user-guide/guides/agent-skills-integration.md +0 -222
  67. package/docs/user-guide/guides/customization.md +0 -537
  68. package/docs/user-guide/guides/internationalization.md +0 -540
  69. package/docs/user-guide/guides/migration-guide.md +0 -138
  70. package/docs/user-guide/guides/multi-project.md +0 -368
  71. package/docs/user-guide/guides/multi-repo-guide.md +0 -1590
  72. package/docs/user-guide/guides/phase-automation.md +0 -419
  73. package/docs/user-guide/guides/workflow.md +0 -574
  74. package/docs/user-guide/hands-on/README.md +0 -142
  75. package/docs/user-guide/hands-on/claude-agent-setup.md +0 -597
  76. package/docs/user-guide/hands-on/claude-setup.md +0 -452
  77. package/docs/user-guide/hands-on/cursor-setup.md +0 -353
  78. package/docs/user-guide/hands-on/troubleshooting.md +0 -964
  79. package/docs/user-guide/hands-on/verification-checklist.md +0 -439
  80. package/docs/user-guide/hands-on/workflow-walkthrough.md +0 -1078
  81. package/docs/user-guide/reference/config.md +0 -589
  82. package/docs/user-guide/reference/multi-repo-api.md +0 -771
  83. package/docs/user-guide/reference/quick-reference.md +0 -297
  84. package/docs/user-guide/reference/security-test-payloads.md +0 -50
  85. package/docs/user-guide/reference/tasks-template.md +0 -550
  86. package/docs/user-guide/release/ci-setup-java.md +0 -114
  87. package/docs/user-guide/release/ci-setup-nodejs.md +0 -94
  88. package/docs/user-guide/release/ci-setup-php.md +0 -102
  89. package/docs/user-guide/release/ci-setup-troubleshooting.md +0 -94
  90. package/docs/user-guide/release/ci-setup.md +0 -188
  91. package/docs/user-guide/release/release-flow.md +0 -476
  92. package/docs/user-guide/templates/test-specs/README.md +0 -173
  93. package/docs/user-guide/templates/test-specs/e2e-test-spec-template.md +0 -553
  94. package/docs/user-guide/templates/test-specs/integration-test-spec-template.md +0 -435
  95. package/docs/user-guide/templates/test-specs/performance-test-spec-template.md +0 -454
  96. package/docs/user-guide/templates/test-specs/security-test-spec-template.md +0 -625
  97. package/docs/user-guide/templates/test-specs/unit-test-spec-template.md +0 -328
  98. package/docs/user-guide/testing/integration-tests.md +0 -312
  99. package/docs/user-guide/testing/tdd-cycle.md +0 -349
  100. package/docs/user-guide/testing/test-execution-flow.md +0 -396
  101. package/docs/user-guide/testing/test-failure-handling.md +0 -521
  102. package/docs/user-guide/testing/test-planning-flow.md +0 -185
  103. package/docs/user-guide/testing-strategy.md +0 -185
  104. package/docs/verification-guide.md +0 -518
@@ -1,94 +0,0 @@
1
- # Michi CI/CD設定ガイド - Node.js/TypeScript
2
-
3
- **親ドキュメント**: [ci-setup.md](./ci-setup.md)
4
-
5
- ---
6
-
7
- ## Node.js/TypeScript プロジェクトのCI/CD設定
8
-
9
- ### GitHub Actions設定例
10
-
11
- **設定ファイル例**: `.github/workflows/test.yml`
12
-
13
- ```yaml
14
- name: Test
15
-
16
- on:
17
- push:
18
- branches:
19
- - main
20
- pull_request:
21
-
22
- jobs:
23
- test:
24
- runs-on: ubuntu-latest
25
-
26
- strategy:
27
- matrix:
28
- node-version: [18.x, 20.x]
29
-
30
- steps:
31
- - uses: actions/checkout@v4
32
-
33
- - name: Setup Node.js
34
- uses: actions/setup-node@v4
35
- with:
36
- node-version: ${{ matrix.node-version }}
37
- cache: 'npm'
38
-
39
- - name: Install dependencies
40
- run: npm ci
41
-
42
- - name: Run lint
43
- run: npm run lint
44
-
45
- - name: Run tests
46
- run: npm test
47
-
48
- - name: Build
49
- run: npm run build
50
-
51
- - name: Upload coverage
52
- uses: codecov/codecov-action@v5.5.1
53
- if: matrix.node-version == '20.x'
54
- with:
55
- files: ./coverage/coverage-final.json
56
- ```
57
-
58
- ### Screwdriver設定例
59
-
60
- **設定ファイル例**: `screwdriver.yaml`
61
-
62
- ```yaml
63
- shared:
64
- image: node:20
65
-
66
- jobs:
67
- main:
68
- requires: [~pr, ~commit]
69
- steps:
70
- - install: npm ci
71
- - lint: npm run lint
72
- - test: npm test
73
- - build: npm run build
74
- - coverage: |
75
- if [ -d "coverage" ]; then
76
- echo "Coverage report generated"
77
- fi
78
- ```
79
-
80
- ### package.jsonスクリプト設定
81
-
82
- ```json
83
- {
84
- "scripts": {
85
- "test": "vitest run --coverage",
86
- "test:watch": "vitest",
87
- "lint": "eslint src/**/*.ts",
88
- "lint:fix": "eslint src/**/*.ts --fix",
89
- "build": "tsc",
90
- "type-check": "tsc --noEmit"
91
- }
92
- }
93
- ```
94
-
@@ -1,102 +0,0 @@
1
- # Michi CI/CD設定ガイド - PHP
2
-
3
- **親ドキュメント**: [ci-setup.md](./ci-setup.md)
4
-
5
- ---
6
-
7
- ## PHP プロジェクトのCI/CD設定
8
-
9
- ### GitHub Actions設定例
10
-
11
- **設定ファイル例**: `.github/workflows/test.yml`
12
-
13
- ```yaml
14
- name: Test
15
-
16
- on:
17
- push:
18
- branches:
19
- - main
20
- pull_request:
21
-
22
- jobs:
23
- test:
24
- runs-on: ubuntu-latest
25
-
26
- strategy:
27
- matrix:
28
- php-version: ['8.1', '8.2', '8.3']
29
-
30
- steps:
31
- - uses: actions/checkout@v4
32
-
33
- - name: Setup PHP
34
- uses: shivammathur/setup-php@v2
35
- with:
36
- php-version: ${{ matrix.php-version }}
37
- coverage: xdebug
38
- tools: composer:v2
39
-
40
- - name: Cache Composer packages
41
- uses: actions/cache@v3
42
- with:
43
- path: vendor
44
- key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
45
- restore-keys: |
46
- ${{ runner.os }}-php-
47
-
48
- - name: Install dependencies
49
- run: composer install --prefer-dist --no-progress
50
-
51
- - name: Run PHPStan
52
- run: composer phpstan
53
-
54
- - name: Run tests
55
- run: composer test
56
-
57
- - name: Upload coverage
58
- uses: codecov/codecov-action@v5.5.1
59
- if: matrix.php-version == '8.3'
60
- with:
61
- files: ./coverage.xml
62
- ```
63
-
64
- ### Screwdriver設定例
65
-
66
- **設定ファイル例**: `screwdriver.yaml`
67
-
68
- ```yaml
69
- shared:
70
- image: php:8.3
71
-
72
- jobs:
73
- main:
74
- requires: [~pr, ~commit]
75
- steps:
76
- - install-composer: |
77
- php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
78
- php composer-setup.php
79
- php -r "unlink('composer-setup.php');"
80
- - install: php composer.phar install --prefer-dist --no-progress
81
- - phpstan: php composer.phar phpstan
82
- - test: php composer.phar test
83
- ```
84
-
85
- ### composer.json設定
86
-
87
- ```json
88
- {
89
- "scripts": {
90
- "test": "phpunit --coverage-clover coverage.xml",
91
- "test:unit": "phpunit --testsuite Unit",
92
- "phpstan": "phpstan analyse src tests --level=8",
93
- "cs-fix": "php-cs-fixer fix"
94
- },
95
- "require-dev": {
96
- "phpunit/phpunit": "^10.0",
97
- "phpstan/phpstan": "^1.10",
98
- "friendsofphp/php-cs-fixer": "^3.0"
99
- }
100
- }
101
- ```
102
-
@@ -1,94 +0,0 @@
1
- # Michi CI/CD - トラブルシューティング
2
-
3
- **親ドキュメント**: [ci-setup.md](./ci-setup.md)
4
-
5
- ---
6
-
7
- ## トラブルシューティング
8
-
9
- ### Node.js関連
10
-
11
- #### 問題: `npm ci` が失敗する
12
-
13
- **原因**: package-lock.jsonが古い
14
-
15
- **解決方法**:
16
- ```bash
17
- # ローカルで再生成
18
- rm -rf node_modules package-lock.json
19
- npm install
20
- git add package-lock.json
21
- git commit -m "fix: update package-lock.json"
22
- ```
23
-
24
- #### 問題: テストがローカルでは成功するがCI/CDで失敗
25
-
26
- **原因**: 環境依存の問題(タイムゾーン、ファイルパス等)
27
-
28
- **解決方法**:
29
- ```javascript
30
- // タイムゾーンを固定
31
- process.env.TZ = 'UTC';
32
-
33
- // ファイルパスは絶対パスではなく相対パス
34
- const configPath = path.join(__dirname, '../config.json');
35
- ```
36
-
37
- ### Java(Gradle)関連
38
-
39
- #### 問題: Gradleビルドが遅い
40
-
41
- **原因**: キャッシュが効いていない
42
-
43
- **解決方法**:
44
- ```yaml
45
- # GitHub Actionsでキャッシュを有効化
46
- - uses: actions/setup-java@v4
47
- with:
48
- cache: 'gradle'
49
-
50
- # または手動でキャッシュ
51
- - uses: actions/cache@v3
52
- with:
53
- path: |
54
- ~/.gradle/caches
55
- ~/.gradle/wrapper
56
- key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
57
- ```
58
-
59
- #### 問題: `./gradlew: Permission denied`
60
-
61
- **原因**: 実行権限がない
62
-
63
- **解決方法**:
64
- ```yaml
65
- - name: Grant execute permission
66
- run: chmod +x gradlew
67
- ```
68
-
69
- ### PHP関連
70
-
71
- #### 問題: Composer installが失敗
72
-
73
- **原因**: メモリ不足
74
-
75
- **解決方法**:
76
- ```yaml
77
- - name: Install dependencies
78
- run: composer install --prefer-dist --no-progress
79
- env:
80
- COMPOSER_MEMORY_LIMIT: -1
81
- ```
82
-
83
- #### 問題: PHPStanがCI/CDで異なる結果を返す
84
-
85
- **原因**: PHPバージョンの違い
86
-
87
- **解決方法**:
88
- ```yaml
89
- # 特定のPHPバージョンを指定
90
- - uses: shivammathur/setup-php@v2
91
- with:
92
- php-version: '8.3' # プロジェクトと同じバージョン
93
- ```
94
-
@@ -1,188 +0,0 @@
1
- # CI/CD設定
2
-
3
- このドキュメントでは、michiを使用したプロジェクトでのCI/CD(継続的インテグレーション/継続的デリバリー)設定について説明します。
4
-
5
- ## michiのCI/CD方針
6
-
7
- michiでは、**Phase Aのテスト(単体テスト、Lint、ビルド)のみをCI/CDで自動実行**します。
8
-
9
- ### CI/CDで実行されるもの
10
-
11
- | テストタイプ | 実行タイミング | CI/CDで自動実行 |
12
- |------------|--------------|---------------|
13
- | 単体テスト | Phase A(PR前) | ✅ はい |
14
- | Lint | Phase A(PR前) | ✅ はい |
15
- | ビルド | Phase A(PR前) | ✅ はい |
16
- | 統合テスト | Phase B(リリース準備時) | ❌ いいえ(手動) |
17
- | E2Eテスト | Phase B(リリース準備時) | ❌ いいえ(手動) |
18
- | パフォーマンステスト | Phase B(リリース準備時) | ❌ いいえ(手動) |
19
- | セキュリティテスト | Phase B(リリース準備時) | ❌ いいえ(手動) |
20
-
21
- **理由**:
22
- - Phase Aは高速実行が必要(数分以内)
23
- - Phase Bは時間がかかる(数十分〜数時間)
24
- - Phase Bは本番環境に近い状態での検証が必要
25
-
26
- ## 対応CI/CDツール
27
-
28
- michiは以下のCI/CDツールをサポートしています:
29
-
30
- ### 1. GitHub Actions(推奨)
31
-
32
- - **対象**: GitHubホストのリポジトリ
33
- - **メリット**: GitHubとの統合が容易、無料枠が充実
34
- - **設定ファイル**: `.github/workflows/`
35
-
36
- ### 2. Screwdriver
37
-
38
- - **対象**: オープンソースのCI/CDツールを使用したいプロジェクト
39
- - **メリット**: 高いカスタマイズ性、柔軟なパイプライン設定
40
- - **設定ファイル**: `screwdriver.yaml`
41
-
42
-
43
- ## 言語別CI/CD設定ガイド
44
-
45
- 各言語のCI/CD設定については、以下のドキュメントを参照してください:
46
-
47
- - **[Node.js/TypeScript プロジェクト](./ci-setup-nodejs.md)**
48
- - GitHub Actions設定
49
- - Screwdriver設定
50
- - Phase A/Bテスト実行
51
-
52
- - **[Java(Gradle)プロジェクト](./ci-setup-java.md)**
53
- - GitHub Actions設定
54
- - Screwdriver設定
55
- - Phase A/Bテスト実行
56
-
57
- - **[PHP プロジェクト](./ci-setup-php.md)**
58
- - GitHub Actions設定
59
- - Screwdriver設定
60
- - Phase A/Bテスト実行
61
-
62
- ## CI/CDのベストプラクティス
63
-
64
- ### 1. キャッシュの活用
65
-
66
- **Node.js(npm):**
67
- ```yaml
68
- - uses: actions/setup-node@v4
69
- with:
70
- cache: 'npm'
71
- ```
72
-
73
- **Java(Gradle):**
74
- ```yaml
75
- - uses: actions/setup-java@v4
76
- with:
77
- cache: 'gradle'
78
- ```
79
-
80
- **PHP(Composer):**
81
- ```yaml
82
- - uses: actions/cache@v3
83
- with:
84
- path: vendor
85
- key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
86
- ```
87
-
88
- ### 2. 並列実行(マトリックス戦略)
89
-
90
- ```yaml
91
- strategy:
92
- matrix:
93
- node-version: [18.x, 20.x]
94
- os: [ubuntu-latest, windows-latest, macos-latest]
95
- ```
96
-
97
- ### 3. タイムアウト設定
98
-
99
- ```yaml
100
- jobs:
101
- test:
102
- timeout-minutes: 10 # 10分でタイムアウト
103
- ```
104
-
105
- ### 4. エラー時の通知
106
-
107
- **GitHub Actions(Slack通知):**
108
- ```yaml
109
- - name: Notify Slack on failure
110
- if: failure()
111
- uses: 8398a7/action-slack@v3
112
- with:
113
- status: ${{ job.status }}
114
- webhook_url: ${{ secrets.SLACK_WEBHOOK }}
115
- ```
116
-
117
- ### 5. アーティファクトの保存
118
-
119
- ```yaml
120
- - name: Upload test results
121
- uses: actions/upload-artifact@v3
122
- if: failure()
123
- with:
124
- name: test-results
125
- path: build/reports/
126
- ```
127
-
128
-
129
- ## トラブルシューティング
130
-
131
- CI/CD設定の問題については、以下のドキュメントを参照してください:
132
-
133
- 👉 **[CI/CDトラブルシューティングガイド](./ci-setup-troubleshooting.md)**
134
-
135
- ## CI/CD設定のチェックリスト
136
-
137
- ### 初回設定時
138
-
139
- - [ ] CI/CD設定ファイルを作成(GitHub Actions or Screwdriver)
140
- - [ ] 単体テストが自動実行される
141
- - [ ] Lintが自動実行される
142
- - [ ] ビルドが自動実行される
143
- - [ ] キャッシュが有効化されている
144
- - [ ] マトリックス戦略で複数バージョンをテスト
145
- - [ ] タイムアウト設定を追加
146
- - [ ] エラー時の通知設定(任意)
147
-
148
- ### 運用時の定期確認
149
-
150
- - [ ] CI/CDの実行時間が長くなっていないか(目標: 5分以内)
151
- - [ ] キャッシュが効いているか
152
- - [ ] 失敗率が高くなっていないか
153
- - [ ] 依存パッケージが古くなっていないか
154
-
155
- ## リリースタグ作成時のCI/CD
156
-
157
- リリースタグを作成すると、CI/CDが自動的に実行されます:
158
-
159
- ```yaml
160
- # タグプッシュ時にも実行
161
- on:
162
- push:
163
- tags:
164
- - 'v*'
165
- ```
166
-
167
- **実行内容**:
168
- 1. 単体テスト
169
- 2. Lint
170
- 3. ビルド
171
-
172
- **すべて成功したら、GitHub Releaseを作成**します(手動)。
173
-
174
- 詳細は [リリースフロー](./release-flow.md) を参照してください。
175
-
176
- ## 次のステップ
177
-
178
- - [リリースフロー](./release-flow.md): リリースタグ作成からGitHub Releaseまで
179
- - [テスト実行フロー](../testing/test-execution-flow.md): Phase A/Bの詳細
180
-
181
- ## CI/CD設定テンプレート
182
-
183
- 実際のCI/CD設定ファイルテンプレートは、以下のディレクトリに用意されています:
184
-
185
- - GitHub Actions: `templates/ci/github-actions/`
186
- - Screwdriver: `templates/ci/screwdriver/`
187
-
188
- 詳細は各テンプレートファイルを参照してください。