@k2works/claude-code-booster 0.8.0 → 0.9.1
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.
- package/lib/assets/.claude/README.md +54 -136
- package/lib/assets/.claude/assets/.gitkeep +0 -0
- package/lib/assets/.claude/commands/git-commit.md +47 -0
- package/lib/assets/.claude/commands/ops.md +16 -16
- package/lib/assets/.claude/scripts/.gitkeep +0 -0
- package/lib/assets/README.md +77 -3
- package/lib/assets/apps/.gitkeep +0 -0
- package/package.json +1 -1
- package/lib/assets/.claude/agents/roles/analyzer.md +0 -267
- package/lib/assets/.claude/agents/roles/architect.md +0 -233
- package/lib/assets/.claude/agents/roles/backend.md +0 -303
- package/lib/assets/.claude/agents/roles/frontend.md +0 -294
- package/lib/assets/.claude/agents/roles/mobile.md +0 -309
- package/lib/assets/.claude/agents/roles/performance.md +0 -254
- package/lib/assets/.claude/agents/roles/qa.md +0 -266
- package/lib/assets/.claude/agents/roles/reviewer.md +0 -252
- package/lib/assets/.claude/agents/roles/security.md +0 -392
- package/lib/assets/.claude/assets/confirm.mp3 +0 -0
- package/lib/assets/.claude/assets/perfect.mp3 +0 -0
- package/lib/assets/.claude/assets/silent.wav +0 -0
- package/lib/assets/.claude/commands/analyze-dependencies.md +0 -158
- package/lib/assets/.claude/commands/analyze-performance.md +0 -116
- package/lib/assets/.claude/commands/check-fact.md +0 -104
- package/lib/assets/.claude/commands/check-github-ci.md +0 -53
- package/lib/assets/.claude/commands/check-prompt.md +0 -461
- package/lib/assets/.claude/commands/commit-message.md +0 -348
- package/lib/assets/.claude/commands/context7.md +0 -50
- package/lib/assets/.claude/commands/design-patterns.md +0 -186
- package/lib/assets/.claude/commands/explain-code.md +0 -75
- package/lib/assets/.claude/commands/fix-error.md +0 -258
- package/lib/assets/.claude/commands/multi-role.md +0 -291
- package/lib/assets/.claude/commands/next.md +0 -136
- package/lib/assets/.claude/commands/pr-auto-update.md +0 -460
- package/lib/assets/.claude/commands/pr-create.md +0 -249
- package/lib/assets/.claude/commands/pr-feedback.md +0 -143
- package/lib/assets/.claude/commands/pr-issue.md +0 -78
- package/lib/assets/.claude/commands/pr-list.md +0 -66
- package/lib/assets/.claude/commands/pr-review.md +0 -142
- package/lib/assets/.claude/commands/refactor.md +0 -147
- package/lib/assets/.claude/commands/role-debate.md +0 -571
- package/lib/assets/.claude/commands/role-help.md +0 -276
- package/lib/assets/.claude/commands/role.md +0 -360
- package/lib/assets/.claude/commands/screenshot.md +0 -103
- package/lib/assets/.claude/commands/search-gemini.md +0 -66
- package/lib/assets/.claude/commands/semantic-commit.md +0 -1129
- package/lib/assets/.claude/commands/sequential-thinking.md +0 -90
- package/lib/assets/.claude/commands/show-plan.md +0 -59
- package/lib/assets/.claude/commands/smart-review.md +0 -174
- package/lib/assets/.claude/commands/spec.md +0 -559
- package/lib/assets/.claude/commands/style-ai-writing.md +0 -186
- package/lib/assets/.claude/commands/task.md +0 -223
- package/lib/assets/.claude/commands/tech-debt.md +0 -87
- package/lib/assets/.claude/commands/ultrathink.md +0 -65
- package/lib/assets/.claude/commands/update-dart-doc.md +0 -202
- package/lib/assets/.claude/commands/update-doc-string.md +0 -306
- package/lib/assets/.claude/commands/update-flutter-deps.md +0 -105
- package/lib/assets/.claude/commands/update-node-deps.md +0 -105
- package/lib/assets/.claude/commands/update-rust-deps.md +0 -107
- package/lib/assets/.claude/scripts/auto-comment.sh +0 -16
- package/lib/assets/.claude/scripts/check-ai-commit.sh +0 -20
- package/lib/assets/.claude/scripts/check-continue.sh +0 -97
- package/lib/assets/.claude/scripts/check-locales.sh +0 -1080
- package/lib/assets/.claude/scripts/check-project-plan.sh +0 -25
- package/lib/assets/.claude/scripts/debug-hook.sh +0 -7
- package/lib/assets/.claude/scripts/deny-check.sh +0 -69
- package/lib/assets/.claude/scripts/install.sh +0 -174
- package/lib/assets/.claude/scripts/ja-space-exclusions.json +0 -18
- package/lib/assets/.claude/scripts/ja-space-format.sh +0 -45
- package/lib/assets/.claude/scripts/preserve-file-permissions.sh +0 -83
- package/lib/assets/.claude/scripts/statusline.sh +0 -153
- /package/lib/assets/{app → .claude/agents/roles}/.gitkeep +0 -0
|
@@ -1,348 +0,0 @@
|
|
|
1
|
-
## Commit Message
|
|
2
|
-
|
|
3
|
-
ステージングされた変更(git diff --staged)から適切なコミットメッセージを生成します。git コマンドの実行は行わず、メッセージの生成とクリップボードへのコピーのみを行います。
|
|
4
|
-
|
|
5
|
-
### 使い方
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
/commit-message [オプション]
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
### オプション
|
|
12
|
-
|
|
13
|
-
- `--format <形式>` : メッセージ形式を指定(conventional, gitmoji, angular)
|
|
14
|
-
- `--lang <言語>` : メッセージ言語を強制指定(en, ja)
|
|
15
|
-
- `--breaking` : Breaking Change の検出と記載
|
|
16
|
-
|
|
17
|
-
### 基本例
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
# ステージングされた変更からメッセージ生成(言語自動判定)
|
|
21
|
-
# メイン候補が自動的にクリップボードにコピーされます
|
|
22
|
-
/commit-message
|
|
23
|
-
|
|
24
|
-
# 言語を強制的に指定
|
|
25
|
-
/commit-message --lang ja
|
|
26
|
-
/commit-message --lang en
|
|
27
|
-
|
|
28
|
-
# Breaking Change を検出
|
|
29
|
-
/commit-message --breaking
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
### 前提条件
|
|
33
|
-
|
|
34
|
-
**重要**: このコマンドはステージングされた変更のみを分析します。事前に `git add` で変更をステージングしておく必要があります。
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
# ステージングされていない場合は警告が表示されます
|
|
38
|
-
$ /commit-message
|
|
39
|
-
ステージングされた変更がありません。先に git add を実行してください。
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
### 自動クリップボード機能
|
|
43
|
-
|
|
44
|
-
生成されたメイン候補は `git commit -m "メッセージ"` の完全な形式で自動的にクリップボードにコピーされます。ターミナルでそのまま貼り付けて実行できます。
|
|
45
|
-
|
|
46
|
-
**実装時の注意**:
|
|
47
|
-
|
|
48
|
-
- コミットコマンドを `pbcopy` に渡す際は、メッセージ出力とは別プロセスで実行すること
|
|
49
|
-
- `echo` の代わりに `printf` を使用して末尾の改行を避けること
|
|
50
|
-
|
|
51
|
-
### プロジェクト規約の自動検出
|
|
52
|
-
|
|
53
|
-
**重要**: プロジェクト独自の規約が存在する場合は、それを優先します。
|
|
54
|
-
|
|
55
|
-
#### 1. CommitLint 設定の確認
|
|
56
|
-
|
|
57
|
-
以下のファイルから設定を自動検出:
|
|
58
|
-
|
|
59
|
-
- `commitlint.config.js`
|
|
60
|
-
- `commitlint.config.mjs`
|
|
61
|
-
- `commitlint.config.cjs`
|
|
62
|
-
- `commitlint.config.ts`
|
|
63
|
-
- `.commitlintrc.js`
|
|
64
|
-
- `.commitlintrc.json`
|
|
65
|
-
- `.commitlintrc.yml`
|
|
66
|
-
- `.commitlintrc.yaml`
|
|
67
|
-
- `package.json` の `commitlint` セクション
|
|
68
|
-
|
|
69
|
-
```bash
|
|
70
|
-
# 設定ファイルの検索
|
|
71
|
-
find . -name "commitlint.config.*" -o -name ".commitlintrc.*" | head -1
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
#### 2. カスタムタイプの検出
|
|
75
|
-
|
|
76
|
-
プロジェクト独自のタイプ例:
|
|
77
|
-
|
|
78
|
-
```javascript
|
|
79
|
-
// commitlint.config.mjs
|
|
80
|
-
export default {
|
|
81
|
-
extends: ['@commitlint/config-conventional'],
|
|
82
|
-
rules: {
|
|
83
|
-
'type-enum': [
|
|
84
|
-
2,
|
|
85
|
-
'always',
|
|
86
|
-
[
|
|
87
|
-
'feat', 'fix', 'docs', 'style', 'refactor', 'test', 'chore',
|
|
88
|
-
'wip', // 作業中
|
|
89
|
-
'hotfix', // 緊急修正
|
|
90
|
-
'release', // リリース
|
|
91
|
-
'deps', // 依存関係更新
|
|
92
|
-
'config' // 設定変更
|
|
93
|
-
]
|
|
94
|
-
]
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
#### 3. 言語設定の検出
|
|
100
|
-
|
|
101
|
-
```javascript
|
|
102
|
-
// プロジェクトが日本語メッセージを使用する場合
|
|
103
|
-
export default {
|
|
104
|
-
rules: {
|
|
105
|
-
'subject-case': [0], // 日本語対応のため無効化
|
|
106
|
-
'subject-max-length': [2, 'always', 72] // 日本語は文字数制限を調整
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
#### 4. 既存コミット履歴の分析
|
|
112
|
-
|
|
113
|
-
```bash
|
|
114
|
-
# 最近のコミットから使用パターンを学習
|
|
115
|
-
git log --oneline -50 --pretty=format:"%s"
|
|
116
|
-
|
|
117
|
-
# 使用タイプ統計
|
|
118
|
-
git log --oneline -100 --pretty=format:"%s" | \
|
|
119
|
-
grep -oE '^[a-z]+(\([^)]+\))?' | \
|
|
120
|
-
sort | uniq -c | sort -nr
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
### 言語の自動判定
|
|
124
|
-
|
|
125
|
-
以下の条件で自動的に日本語/英語を切り替えます:
|
|
126
|
-
|
|
127
|
-
1. **CommitLint 設定**から言語設定を確認
|
|
128
|
-
2. **git log 分析**による自動判定
|
|
129
|
-
3. **プロジェクトファイル**の言語設定
|
|
130
|
-
4. **変更ファイル内**のコメント・文字列分析
|
|
131
|
-
|
|
132
|
-
デフォルトは英語。日本語プロジェクトと判定された場合は日本語で生成。
|
|
133
|
-
|
|
134
|
-
### メッセージ形式
|
|
135
|
-
|
|
136
|
-
#### Conventional Commits (デフォルト)
|
|
137
|
-
|
|
138
|
-
```
|
|
139
|
-
<type>: <description>
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
**重要**: 必ず 1 行のコミットメッセージを生成します。複数行のメッセージは生成しません。
|
|
143
|
-
|
|
144
|
-
**注意**: プロジェクト独自の規約がある場合は、それを優先します。
|
|
145
|
-
|
|
146
|
-
### 標準タイプ
|
|
147
|
-
|
|
148
|
-
**必須タイプ**:
|
|
149
|
-
|
|
150
|
-
- `feat`: 新機能(ユーザーに見える機能追加)
|
|
151
|
-
- `fix`: バグ修正
|
|
152
|
-
|
|
153
|
-
**任意タイプ**:
|
|
154
|
-
|
|
155
|
-
- `build`: ビルドシステムや外部依存関係の変更
|
|
156
|
-
- `chore`: その他の変更(リリースに影響しない)
|
|
157
|
-
- `ci`: CI 設定ファイルやスクリプトの変更
|
|
158
|
-
- `docs`: ドキュメントのみの変更
|
|
159
|
-
- `style`: コードの意味に影響しない変更(空白、フォーマット、セミコロンなど)
|
|
160
|
-
- `refactor`: バグ修正や機能追加を伴わないコード変更
|
|
161
|
-
- `perf`: パフォーマンス改善
|
|
162
|
-
- `test`: テストの追加や修正
|
|
163
|
-
|
|
164
|
-
### 出力例(英語プロジェクト)
|
|
165
|
-
|
|
166
|
-
```bash
|
|
167
|
-
$ /commit-message
|
|
168
|
-
|
|
169
|
-
📝 コミットメッセージ提案
|
|
170
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
171
|
-
|
|
172
|
-
✨ メイン候補:
|
|
173
|
-
feat: implement JWT-based authentication system
|
|
174
|
-
|
|
175
|
-
📋 代替案:
|
|
176
|
-
1. feat: add user authentication with JWT tokens
|
|
177
|
-
2. fix: resolve token validation error in auth middleware
|
|
178
|
-
3. refactor: extract auth logic into separate module
|
|
179
|
-
|
|
180
|
-
✅ `git commit -m "feat: implement JWT-based authentication system"` をクリップボードにコピーしました
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
**実装例(修正版)**:
|
|
184
|
-
|
|
185
|
-
```bash
|
|
186
|
-
# コミットコマンドを先にクリップボードにコピー(改行なし)
|
|
187
|
-
printf 'git commit -m "%s"' "$COMMIT_MESSAGE" | pbcopy
|
|
188
|
-
|
|
189
|
-
# その後でメッセージを表示
|
|
190
|
-
cat << EOF
|
|
191
|
-
📝 コミットメッセージ提案
|
|
192
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
193
|
-
|
|
194
|
-
✨ メイン候補:
|
|
195
|
-
$COMMIT_MESSAGE
|
|
196
|
-
|
|
197
|
-
📋 代替案:
|
|
198
|
-
1. ...
|
|
199
|
-
2. ...
|
|
200
|
-
3. ...
|
|
201
|
-
|
|
202
|
-
✅ \`git commit -m "$COMMIT_MESSAGE"\` をクリップボードにコピーしました
|
|
203
|
-
EOF
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
### 出力例(日本語プロジェクト)
|
|
207
|
-
|
|
208
|
-
```bash
|
|
209
|
-
$ /commit-message
|
|
210
|
-
|
|
211
|
-
📝 コミットメッセージ提案
|
|
212
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
213
|
-
|
|
214
|
-
✨ メイン候補:
|
|
215
|
-
feat: JWT 認証システムを実装
|
|
216
|
-
|
|
217
|
-
📋 代替案:
|
|
218
|
-
1. feat: JWT トークンによるユーザー認証を追加
|
|
219
|
-
2. fix: 認証ミドルウェアのトークン検証エラーを解決
|
|
220
|
-
3. docs: 認証ロジックを別モジュールに分離
|
|
221
|
-
|
|
222
|
-
✅ `git commit -m "feat: JWT 認証システムを実装"` をクリップボードにコピーしました
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
### 動作概要
|
|
226
|
-
|
|
227
|
-
1. **分析**: `git diff --staged` の内容を分析
|
|
228
|
-
2. **生成**: 適切なコミットメッセージを生成
|
|
229
|
-
3. **コピー**: メイン候補を自動的にクリップボードへコピー
|
|
230
|
-
|
|
231
|
-
**注意**: このコマンドは git add や git commit を実行しません。コミットメッセージの生成とクリップボードへのコピーのみを行います。
|
|
232
|
-
|
|
233
|
-
### スマート機能
|
|
234
|
-
|
|
235
|
-
#### 1. 変更内容の自動分類(ステージングされたファイルのみ)
|
|
236
|
-
|
|
237
|
-
- 新ファイル追加 → `feat`
|
|
238
|
-
- エラー修正パターン → `fix`
|
|
239
|
-
- テストファイルのみ → `test`
|
|
240
|
-
- 設定ファイル変更 → `chore`
|
|
241
|
-
- README/docs 更新 → `docs`
|
|
242
|
-
|
|
243
|
-
#### 2. プロジェクト規約の自動検出
|
|
244
|
-
|
|
245
|
-
- `.gitmessage` ファイル
|
|
246
|
-
- `CONTRIBUTING.md` 内の規約
|
|
247
|
-
- 過去のコミット履歴パターン
|
|
248
|
-
|
|
249
|
-
#### 3. 言語判定の詳細(ステージングされた変更のみ)
|
|
250
|
-
|
|
251
|
-
```bash
|
|
252
|
-
# 判定基準(優先順位)
|
|
253
|
-
1. git diff --staged の内容から言語を判定
|
|
254
|
-
2. ステージングされたファイルのコメント分析
|
|
255
|
-
3. git log --oneline -20 の言語分析
|
|
256
|
-
4. プロジェクトのメイン言語設定
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
#### 4. ステージング分析の詳細
|
|
260
|
-
|
|
261
|
-
分析に使用する情報(読み取りのみ):
|
|
262
|
-
|
|
263
|
-
- `git diff --staged --name-only` - 変更ファイル一覧
|
|
264
|
-
- `git diff --staged` - 実際の変更内容
|
|
265
|
-
- `git status --porcelain` - ファイル状態
|
|
266
|
-
|
|
267
|
-
### Breaking Change 検出時
|
|
268
|
-
|
|
269
|
-
API の破壊的変更がある場合:
|
|
270
|
-
|
|
271
|
-
**英語**:
|
|
272
|
-
|
|
273
|
-
```bash
|
|
274
|
-
feat!: change user API response format
|
|
275
|
-
|
|
276
|
-
BREAKING CHANGE: user response now includes additional metadata
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
または
|
|
280
|
-
|
|
281
|
-
```bash
|
|
282
|
-
feat(api)!: change authentication flow
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
**日本語**:
|
|
286
|
-
|
|
287
|
-
```bash
|
|
288
|
-
feat!: ユーザー API レスポンス形式を変更
|
|
289
|
-
|
|
290
|
-
BREAKING CHANGE: レスポンスに追加のメタデータが含まれるようになりました
|
|
291
|
-
```
|
|
292
|
-
|
|
293
|
-
または
|
|
294
|
-
|
|
295
|
-
```bash
|
|
296
|
-
feat(api)!: 認証フローを変更
|
|
297
|
-
```
|
|
298
|
-
|
|
299
|
-
### ベストプラクティス
|
|
300
|
-
|
|
301
|
-
1. **プロジェクトに合わせる**: 既存のコミット言語に従う
|
|
302
|
-
2. **簡潔性**: 50 文字以内で明確に
|
|
303
|
-
3. **一貫性**: 混在させない(英語なら英語で統一)
|
|
304
|
-
4. **OSS**: オープンソースなら英語推奨
|
|
305
|
-
5. **1 行厳守**: 必ず 1 行のコミットメッセージにする(詳細な説明が必要な場合は PR で補足)
|
|
306
|
-
|
|
307
|
-
### よくあるパターン
|
|
308
|
-
|
|
309
|
-
**英語**:
|
|
310
|
-
|
|
311
|
-
```
|
|
312
|
-
feat: add user registration endpoint
|
|
313
|
-
fix: resolve memory leak in cache manager
|
|
314
|
-
docs: update API documentation
|
|
315
|
-
```
|
|
316
|
-
|
|
317
|
-
**日本語**:
|
|
318
|
-
|
|
319
|
-
```
|
|
320
|
-
feat: ユーザー登録エンドポイントを追加
|
|
321
|
-
fix: キャッシュマネージャーのメモリリークを解決
|
|
322
|
-
docs: API ドキュメントを更新
|
|
323
|
-
```
|
|
324
|
-
|
|
325
|
-
### Claude との連携
|
|
326
|
-
|
|
327
|
-
```bash
|
|
328
|
-
# ステージングされた変更と組み合わせて使用
|
|
329
|
-
git add -p # インタラクティブにステージング
|
|
330
|
-
/commit-message
|
|
331
|
-
「最適なコミットメッセージを生成して」
|
|
332
|
-
|
|
333
|
-
# 特定のファイルだけステージングして分析
|
|
334
|
-
git add src/auth/*.js
|
|
335
|
-
/commit-message --lang en
|
|
336
|
-
「認証関連の変更に適したメッセージを生成して」
|
|
337
|
-
|
|
338
|
-
# Breaking Change の検出と対応
|
|
339
|
-
git add -A
|
|
340
|
-
/commit-message --breaking
|
|
341
|
-
「破壊的変更がある場合は適切にマークして」
|
|
342
|
-
```
|
|
343
|
-
|
|
344
|
-
### 注意事項
|
|
345
|
-
|
|
346
|
-
- **前提条件**: 変更は事前に `git add` でステージングされている必要があります
|
|
347
|
-
- **制限事項**: ステージングされていない変更は分析対象外です
|
|
348
|
-
- **推奨事項**: プロジェクトの既存コミット規約を事前に確認してください
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
## Context7
|
|
2
|
-
|
|
3
|
-
技術ドキュメントを MCP の Context7 で検索します。
|
|
4
|
-
|
|
5
|
-
### 使い方
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
# Claude に依頼する形式
|
|
9
|
-
「context7 で [検索キーワード] について検索して」
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
### 基本例
|
|
13
|
-
|
|
14
|
-
```bash
|
|
15
|
-
# React hooks の調査
|
|
16
|
-
「context7 で React hooks について検索して」
|
|
17
|
-
|
|
18
|
-
# エラー解決方法の検索
|
|
19
|
-
「context7 で TypeScript の型エラーについて調べて」
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
### Claude との連携
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
# 技術調査の依頼
|
|
26
|
-
「context7 で Rust の所有権システムについて調べて、初心者向けに解説して」
|
|
27
|
-
|
|
28
|
-
# エラー解決の依頼
|
|
29
|
-
「context7 で Python の ImportError の一般的な原因と解決方法を検索して」
|
|
30
|
-
|
|
31
|
-
# ベストプラクティスの確認
|
|
32
|
-
「context7 で React のパフォーマンス最適化のベストプラクティスを探して」
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
### 詳細例
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
# 複数の観点から調査
|
|
39
|
-
「context7 で GraphQL について以下の観点で調べて:
|
|
40
|
-
1. 基本的な概念と REST API との違い
|
|
41
|
-
2. 実装方法とベストプラクティス
|
|
42
|
-
3. よくある問題と解決方法」
|
|
43
|
-
|
|
44
|
-
# 特定のバージョンや環境での調査
|
|
45
|
-
「context7 で Next.js 14 の新機能について検索して、App Router の使い方を中心に説明して」
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
### 注意事項
|
|
49
|
-
|
|
50
|
-
Context7 で情報が見つからない場合は、Claude が自動的に Web 検索など他の方法を提案します。
|
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
## Design Patterns
|
|
2
|
-
|
|
3
|
-
コードベースに適用可能なデザインパターンを提案し、SOLID 原則の遵守状況を評価します。
|
|
4
|
-
|
|
5
|
-
### 使い方
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
/design-patterns [分析対象] [オプション]
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
### オプション
|
|
12
|
-
|
|
13
|
-
- `--suggest` : 適用可能なパターンを提案(デフォルト)
|
|
14
|
-
- `--analyze` : 既存パターンの使用状況を分析
|
|
15
|
-
- `--refactor` : リファクタリング案を生成
|
|
16
|
-
- `--solid` : SOLID 原則の遵守状況をチェック
|
|
17
|
-
- `--anti-patterns` : アンチパターンを検出
|
|
18
|
-
|
|
19
|
-
### 基本例
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
# プロジェクト全体のパターン分析
|
|
23
|
-
/design-patterns
|
|
24
|
-
|
|
25
|
-
# 特定ファイルへのパターン提案
|
|
26
|
-
/design-patterns src/services/user.js --suggest
|
|
27
|
-
|
|
28
|
-
# SOLID 原則チェック
|
|
29
|
-
/design-patterns --solid
|
|
30
|
-
|
|
31
|
-
# アンチパターン検出
|
|
32
|
-
/design-patterns --anti-patterns
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
### 分析カテゴリ
|
|
36
|
-
|
|
37
|
-
#### 1. 生成に関するパターン
|
|
38
|
-
|
|
39
|
-
- **Factory Pattern**: オブジェクト生成の抽象化
|
|
40
|
-
- **Builder Pattern**: 複雑なオブジェクトの段階的構築
|
|
41
|
-
- **Singleton Pattern**: インスタンスの一意性保証
|
|
42
|
-
- **Prototype Pattern**: オブジェクトのクローン生成
|
|
43
|
-
|
|
44
|
-
#### 2. 構造に関するパターン
|
|
45
|
-
|
|
46
|
-
- **Adapter Pattern**: インターフェースの変換
|
|
47
|
-
- **Decorator Pattern**: 機能の動的追加
|
|
48
|
-
- **Facade Pattern**: 複雑なサブシステムの簡略化
|
|
49
|
-
- **Proxy Pattern**: オブジェクトへのアクセス制御
|
|
50
|
-
|
|
51
|
-
#### 3. 振る舞いに関するパターン
|
|
52
|
-
|
|
53
|
-
- **Observer Pattern**: イベント通知の実装
|
|
54
|
-
- **Strategy Pattern**: アルゴリズムの切り替え
|
|
55
|
-
- **Command Pattern**: 操作のカプセル化
|
|
56
|
-
- **Iterator Pattern**: コレクションの走査
|
|
57
|
-
|
|
58
|
-
### SOLID 原則チェック項目
|
|
59
|
-
|
|
60
|
-
```
|
|
61
|
-
S - Single Responsibility Principle (単一責任の原則)
|
|
62
|
-
O - Open/Closed Principle (開放閉鎖の原則)
|
|
63
|
-
L - Liskov Substitution Principle (リスコフの置換原則)
|
|
64
|
-
I - Interface Segregation Principle (インターフェース分離の原則)
|
|
65
|
-
D - Dependency Inversion Principle (依存性逆転の原則)
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
### 出力例
|
|
69
|
-
|
|
70
|
-
```
|
|
71
|
-
デザインパターン分析レポート
|
|
72
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
73
|
-
|
|
74
|
-
現在使用中のパターン
|
|
75
|
-
├─ Observer Pattern: EventEmitter (12 箇所)
|
|
76
|
-
├─ Factory Pattern: UserFactory (3 箇所)
|
|
77
|
-
├─ Singleton Pattern: DatabaseConnection (1 箇所)
|
|
78
|
-
└─ Strategy Pattern: PaymentProcessor (5 箇所)
|
|
79
|
-
|
|
80
|
-
推奨パターン
|
|
81
|
-
├─ [HIGH] Repository Pattern
|
|
82
|
-
│ └─ 対象: src/models/*.js
|
|
83
|
-
│ └─ 理由: データアクセスロジックの分離
|
|
84
|
-
│ └─ 例:
|
|
85
|
-
│ class UserRepository {
|
|
86
|
-
│ async findById(id) { ... }
|
|
87
|
-
│ async save(user) { ... }
|
|
88
|
-
│ }
|
|
89
|
-
│
|
|
90
|
-
├─ [MED] Command Pattern
|
|
91
|
-
│ └─ 対象: src/api/handlers/*.js
|
|
92
|
-
│ └─ 理由: リクエスト処理の統一化
|
|
93
|
-
│
|
|
94
|
-
└─ [LOW] Decorator Pattern
|
|
95
|
-
└─ 対象: src/middleware/*.js
|
|
96
|
-
└─ 理由: 機能の組み合わせ改善
|
|
97
|
-
|
|
98
|
-
SOLID 原則違反
|
|
99
|
-
├─ [S] UserService: 認証と権限管理の両方を担当
|
|
100
|
-
├─ [O] PaymentGateway: 新決済手段追加時に修正必要
|
|
101
|
-
├─ [D] EmailService: 具象クラスに直接依存
|
|
102
|
-
└─ [I] IDataStore: 使用されないメソッドを含む
|
|
103
|
-
|
|
104
|
-
リファクタリング提案
|
|
105
|
-
1. UserService を認証と権限管理に分割
|
|
106
|
-
2. PaymentStrategy インターフェースの導入
|
|
107
|
-
3. EmailService インターフェースの定義
|
|
108
|
-
4. IDataStore を用途別に分離
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
### 高度な使用例
|
|
112
|
-
|
|
113
|
-
```bash
|
|
114
|
-
# パターン適用の影響分析
|
|
115
|
-
/design-patterns --impact-analysis Repository
|
|
116
|
-
|
|
117
|
-
# 特定パターンの実装例生成
|
|
118
|
-
/design-patterns --generate Factory --for src/models/Product.js
|
|
119
|
-
|
|
120
|
-
# パターンの組み合わせ提案
|
|
121
|
-
/design-patterns --combine --context "API with caching"
|
|
122
|
-
|
|
123
|
-
# アーキテクチャパターンの評価
|
|
124
|
-
/design-patterns --architecture MVC
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
### パターン適用例
|
|
128
|
-
|
|
129
|
-
#### Before (問題のあるコード)
|
|
130
|
-
|
|
131
|
-
```javascript
|
|
132
|
-
class OrderService {
|
|
133
|
-
processOrder(order, paymentType) {
|
|
134
|
-
if (paymentType === "credit") {
|
|
135
|
-
// クレジットカード処理
|
|
136
|
-
} else if (paymentType === "paypal") {
|
|
137
|
-
// PayPal 処理
|
|
138
|
-
}
|
|
139
|
-
// 他の決済方法...
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
#### After (Strategy Pattern 適用)
|
|
145
|
-
|
|
146
|
-
```javascript
|
|
147
|
-
// 戦略インターフェース
|
|
148
|
-
class PaymentStrategy {
|
|
149
|
-
process(amount) {
|
|
150
|
-
throw new Error("Must implement process method");
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
// 具象戦略
|
|
155
|
-
class CreditCardPayment extends PaymentStrategy {
|
|
156
|
-
process(amount) {
|
|
157
|
-
/* 実装 */
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
// コンテキスト
|
|
162
|
-
class OrderService {
|
|
163
|
-
constructor(paymentStrategy) {
|
|
164
|
-
this.paymentStrategy = paymentStrategy;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
processOrder(order) {
|
|
168
|
-
this.paymentStrategy.process(order.total);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
### アンチパターン検出
|
|
174
|
-
|
|
175
|
-
- **God Object**: 過度に多くの責務を持つクラス
|
|
176
|
-
- **Spaghetti Code**: 制御フローが複雑に絡み合ったコード
|
|
177
|
-
- **Copy-Paste Programming**: 重複コードの過度な使用
|
|
178
|
-
- **Magic Numbers**: ハードコードされた定数
|
|
179
|
-
- **Callback Hell**: 深くネストしたコールバック
|
|
180
|
-
|
|
181
|
-
### ベストプラクティス
|
|
182
|
-
|
|
183
|
-
1. **段階的適用**: 一度に多くのパターンを適用しない
|
|
184
|
-
2. **必要性の検証**: パターンは問題解決の手段であり目的ではない
|
|
185
|
-
3. **チーム合意**: パターン適用前にチームで議論
|
|
186
|
-
4. **ドキュメント化**: 適用したパターンの意図を記録
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
## Code Explain
|
|
2
|
-
|
|
3
|
-
コードの動作を詳しく解説します。
|
|
4
|
-
|
|
5
|
-
### 使い方
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
# ファイル内容を表示して Claude に依頼
|
|
9
|
-
cat <file>
|
|
10
|
-
「このコードの動作を解説して」
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
### 基本例
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
# Rust の所有権を理解
|
|
17
|
-
cat main.rs
|
|
18
|
-
「Rust の所有権とライフタイムの観点から解説して」
|
|
19
|
-
|
|
20
|
-
# アルゴリズムの解説
|
|
21
|
-
grep -A 50 "quicksort" sort.rs
|
|
22
|
-
「このソートアルゴリズムの仕組みと計算量を解説して」
|
|
23
|
-
|
|
24
|
-
# デザインパターンの説明
|
|
25
|
-
cat factory.rs
|
|
26
|
-
「使用されているデザインパターンとその利点を説明して」
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
### Claude との連携
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
# 初心者向け解説
|
|
33
|
-
cat complex_function.py
|
|
34
|
-
「このコードを初心者にもわかりやすく 1 行ずつ解説して」
|
|
35
|
-
|
|
36
|
-
# パフォーマンス分析
|
|
37
|
-
cat algorithm.rs
|
|
38
|
-
「このコードのパフォーマンス上の問題点と改善案を提示して」
|
|
39
|
-
|
|
40
|
-
# 図解付き説明
|
|
41
|
-
cat state_machine.js
|
|
42
|
-
「このコードの処理の流れを ASCII アートの図解付きで説明して」
|
|
43
|
-
|
|
44
|
-
# セキュリティレビュー
|
|
45
|
-
cat auth_handler.go
|
|
46
|
-
「このコードのセキュリティ上の懸念点を指摘して」
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
### 詳細例
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
# 複雑なロジックの解説
|
|
53
|
-
cat recursive_parser.rs
|
|
54
|
-
「この再帰パーサーの動作を以下の観点で解説して:
|
|
55
|
-
1. 全体的な処理フロー
|
|
56
|
-
2. 各関数の役割と責任
|
|
57
|
-
3. エッジケースの処理
|
|
58
|
-
4. 改善可能な点」
|
|
59
|
-
|
|
60
|
-
# 非同期処理の解説
|
|
61
|
-
cat async_handler.ts
|
|
62
|
-
「この非同期処理について以下を解説して:
|
|
63
|
-
1. Promise チェーンの流れ
|
|
64
|
-
2. エラーハンドリングの仕組み
|
|
65
|
-
3. 並行処理の有無
|
|
66
|
-
4. デッドロックの可能性」
|
|
67
|
-
|
|
68
|
-
# アーキテクチャの説明
|
|
69
|
-
ls -la src/ && cat src/main.rs src/lib.rs
|
|
70
|
-
「このプロジェクトのアーキテクチャとモジュール構成を解説して」
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
### 注意事項
|
|
74
|
-
|
|
75
|
-
コード解説では、単に動作を説明するだけでなく、なぜそのような実装になっているか、どのような利点があるか、潜在的な問題点は何かといった深い洞察も提供します。
|