@sk8metal/michi-cli 0.8.7 → 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 (116) hide show
  1. package/CHANGELOG.md +70 -1
  2. package/README.md +77 -847
  3. package/dist/scripts/config/config-schema.d.ts +3 -0
  4. package/dist/scripts/config/config-schema.d.ts.map +1 -1
  5. package/dist/scripts/config/config-schema.js +18 -0
  6. package/dist/scripts/config/config-schema.js.map +1 -1
  7. package/dist/scripts/phase-runner.js +1 -1
  8. package/dist/scripts/phase-runner.js.map +1 -1
  9. package/dist/scripts/utils/multi-repo-validator.d.ts +38 -1
  10. package/dist/scripts/utils/multi-repo-validator.d.ts.map +1 -1
  11. package/dist/scripts/utils/multi-repo-validator.js +166 -1
  12. package/dist/scripts/utils/multi-repo-validator.js.map +1 -1
  13. package/dist/scripts/utils/tasks-format-validator.js +3 -3
  14. package/dist/scripts/utils/tasks-format-validator.js.map +1 -1
  15. package/docs/README.md +20 -83
  16. package/docs/getting-started/configuration.md +379 -0
  17. package/docs/getting-started/installation.md +59 -0
  18. package/docs/getting-started/quick-start.md +76 -0
  19. package/docs/guides/ai-tools.md +311 -0
  20. package/docs/guides/atlassian-integration.md +116 -0
  21. package/docs/guides/claude-code.md +155 -0
  22. package/docs/guides/multi-repo.md +117 -0
  23. package/docs/guides/workflow.md +382 -0
  24. package/docs/reference/ai-commands.md +92 -0
  25. package/docs/reference/cli.md +756 -0
  26. package/docs/reference/environment-variables.md +192 -0
  27. package/docs/troubleshooting.md +543 -0
  28. package/package.json +1 -1
  29. package/scripts/__tests__/multi-repo-config-schema.test.ts +106 -0
  30. package/scripts/__tests__/multi-repo-validator.test.ts +229 -1
  31. package/scripts/config/config-schema.ts +20 -0
  32. package/scripts/phase-runner.ts +1 -1
  33. package/scripts/utils/__tests__/multi-repo-validator.test.ts +159 -1
  34. package/scripts/utils/multi-repo-validator.ts +210 -1
  35. package/scripts/utils/tasks-format-validator.ts +3 -3
  36. package/templates/claude/agents/e2e-first-planner/AGENT.md +1 -1
  37. package/templates/claude/agents/mermaid-validator/AGENT.md +257 -0
  38. package/templates/claude/agents/pr-resolver/AGENT.md +15 -3
  39. package/templates/claude/commands/michi/e2e-plan.md +1 -1
  40. package/templates/claude/commands/michi/spec-design.md +2 -2
  41. package/templates/claude/commands/michi/spec-tasks.md +156 -0
  42. package/templates/claude/commands/michi/test-planning.md +1 -1
  43. package/templates/claude/commands/michi/validate-design.md +3 -3
  44. package/templates/claude/commands/michi-multi-repo/impl-all.md +293 -0
  45. package/templates/claude/commands/michi-multi-repo/propagate-specs.md +284 -0
  46. package/templates/claude/commands/michi-multi-repo/spec-design.md +66 -3
  47. package/templates/claude/commands/michi-multi-repo/spec-review.md +261 -0
  48. package/templates/claude/skills/mermaid-validator/SKILL.md +261 -0
  49. package/templates/claude-agent/agents/cross-repo-reviewer.md +194 -0
  50. package/templates/claude-agent/agents/repo-spec-executor.md +113 -0
  51. package/templates/claude-agent/commands/michi/spec-tasks.md +117 -0
  52. package/templates/claude-agent/rules/code-size-monitor.md +26 -0
  53. package/templates/claude-agent/rules/code-size-rules.md +32 -0
  54. package/templates/codex/AGENTS.override.md +1 -1
  55. package/templates/codex/rules/README.md +2 -2
  56. package/templates/cursor/commands/michi/spec-tasks.md +117 -0
  57. package/templates/michi/cc-sdd-overrides/settings/rules/design-review-michi.md +1 -1
  58. package/docs/context.md +0 -59
  59. package/docs/michi-development/contributing/development.md +0 -341
  60. package/docs/michi-development/contributing/release.md +0 -365
  61. package/docs/michi-development/design/config-unification.md +0 -733
  62. package/docs/michi-development/design/design-config-current-state.md +0 -330
  63. package/docs/michi-development/design/design-config-implementation.md +0 -628
  64. package/docs/michi-development/design/design-config-migration.md +0 -952
  65. package/docs/michi-development/design/design-config-security.md +0 -771
  66. package/docs/michi-development/design/design-config-solution.md +0 -583
  67. package/docs/michi-development/design/design-config-testing.md +0 -892
  68. package/docs/michi-development/testing/manual-verification-flow.md +0 -871
  69. package/docs/michi-development/testing/manual-verification-other-tools.md +0 -1279
  70. package/docs/michi-development/testing/manual-verification-troubleshooting.md +0 -122
  71. package/docs/michi-development/testing/pre-publish-checklist.md +0 -560
  72. package/docs/michi-development/testing-strategy.md +0 -87
  73. package/docs/plan.md +0 -275
  74. package/docs/user-guide/getting-started/github-token-setup.md +0 -510
  75. package/docs/user-guide/getting-started/new-repository-setup.md +0 -704
  76. package/docs/user-guide/getting-started/quick-start.md +0 -212
  77. package/docs/user-guide/getting-started/setup.md +0 -819
  78. package/docs/user-guide/guides/agent-skills-integration.md +0 -222
  79. package/docs/user-guide/guides/customization.md +0 -537
  80. package/docs/user-guide/guides/internationalization.md +0 -540
  81. package/docs/user-guide/guides/migration-guide.md +0 -138
  82. package/docs/user-guide/guides/multi-project.md +0 -368
  83. package/docs/user-guide/guides/multi-repo-guide.md +0 -1147
  84. package/docs/user-guide/guides/phase-automation.md +0 -419
  85. package/docs/user-guide/guides/workflow.md +0 -584
  86. package/docs/user-guide/hands-on/README.md +0 -142
  87. package/docs/user-guide/hands-on/claude-agent-setup.md +0 -597
  88. package/docs/user-guide/hands-on/claude-setup.md +0 -452
  89. package/docs/user-guide/hands-on/cursor-setup.md +0 -353
  90. package/docs/user-guide/hands-on/troubleshooting.md +0 -964
  91. package/docs/user-guide/hands-on/verification-checklist.md +0 -439
  92. package/docs/user-guide/hands-on/workflow-walkthrough.md +0 -909
  93. package/docs/user-guide/reference/config.md +0 -589
  94. package/docs/user-guide/reference/multi-repo-api.md +0 -771
  95. package/docs/user-guide/reference/quick-reference.md +0 -297
  96. package/docs/user-guide/reference/security-test-payloads.md +0 -50
  97. package/docs/user-guide/reference/tasks-template.md +0 -550
  98. package/docs/user-guide/release/ci-setup-java.md +0 -114
  99. package/docs/user-guide/release/ci-setup-nodejs.md +0 -94
  100. package/docs/user-guide/release/ci-setup-php.md +0 -102
  101. package/docs/user-guide/release/ci-setup-troubleshooting.md +0 -94
  102. package/docs/user-guide/release/ci-setup.md +0 -188
  103. package/docs/user-guide/release/release-flow.md +0 -476
  104. package/docs/user-guide/templates/test-specs/README.md +0 -173
  105. package/docs/user-guide/templates/test-specs/e2e-test-spec-template.md +0 -553
  106. package/docs/user-guide/templates/test-specs/integration-test-spec-template.md +0 -435
  107. package/docs/user-guide/templates/test-specs/performance-test-spec-template.md +0 -454
  108. package/docs/user-guide/templates/test-specs/security-test-spec-template.md +0 -625
  109. package/docs/user-guide/templates/test-specs/unit-test-spec-template.md +0 -328
  110. package/docs/user-guide/testing/integration-tests.md +0 -312
  111. package/docs/user-guide/testing/tdd-cycle.md +0 -349
  112. package/docs/user-guide/testing/test-execution-flow.md +0 -396
  113. package/docs/user-guide/testing/test-failure-handling.md +0 -521
  114. package/docs/user-guide/testing/test-planning-flow.md +0 -185
  115. package/docs/user-guide/testing-strategy.md +0 -185
  116. 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
- 詳細は各テンプレートファイルを参照してください。