Initial commit
This commit is contained in:
158
commands/analyze-dependencies.md
Normal file
158
commands/analyze-dependencies.md
Normal file
@@ -0,0 +1,158 @@
|
||||
## Dependency Analysis
|
||||
|
||||
プロジェクトの依存関係を分析し、アーキテクチャの健全性を評価します。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
/dependency-analysis [オプション]
|
||||
```
|
||||
|
||||
### オプション
|
||||
|
||||
- `--visual` : 依存関係を視覚的に表示
|
||||
- `--circular` : 循環依存のみを検出
|
||||
- `--depth <数値>` : 分析の深さを指定 (デフォルト: 3)
|
||||
- `--focus <パス>` : 特定のモジュール/ディレクトリに焦点
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# プロジェクト全体の依存関係分析
|
||||
/dependency-analysis
|
||||
|
||||
# 循環依存の検出
|
||||
/dependency-analysis --circular
|
||||
|
||||
# 特定モジュールの詳細分析
|
||||
/dependency-analysis --focus src/core --depth 5
|
||||
```
|
||||
|
||||
### 分析項目
|
||||
|
||||
#### 1. 依存関係マトリックス
|
||||
|
||||
モジュール間の依存関係を数値化して表示:
|
||||
|
||||
- 直接依存
|
||||
- 間接依存
|
||||
- 依存の深さ
|
||||
- ファンイン/ファンアウト
|
||||
|
||||
#### 2. アーキテクチャ違反検出
|
||||
|
||||
- レイヤー違反 (下位層が上位層に依存)
|
||||
- 循環依存
|
||||
- 過度な結合 (高い依存度)
|
||||
- 孤立したモジュール
|
||||
|
||||
#### 3. Clean Architecture 準拠チェック
|
||||
|
||||
- ドメイン層の独立性
|
||||
- インフラ層の適切な分離
|
||||
- ユースケース層の依存方向
|
||||
- インターフェースの適用状況
|
||||
|
||||
### 出力例
|
||||
|
||||
```text
|
||||
依存関係分析レポート
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
📊 メトリクス概要
|
||||
├─ 総モジュール数: 42
|
||||
├─ 平均依存数: 3.2
|
||||
├─ 最大依存深度: 5
|
||||
└─ 循環依存: 2 件検出
|
||||
|
||||
⚠️ アーキテクチャ違反
|
||||
├─ [HIGH] src/domain/user.js → src/infra/database.js
|
||||
│ └─ ドメイン層がインフラ層に直接依存
|
||||
├─ [MED] src/api/auth.js ⟲ src/services/user.js
|
||||
│ └─ 循環依存を検出
|
||||
└─ [LOW] src/utils/helper.js → 12 modules
|
||||
└─ 過度なファンアウト
|
||||
|
||||
✅ 推奨アクション
|
||||
1. UserRepository インターフェースを導入
|
||||
2. 認証サービスの責務を再設計
|
||||
3. ヘルパー関数を機能別に分割
|
||||
|
||||
📈 依存関係グラフ
|
||||
[視覚的な依存関係図を ASCII アートで表示]
|
||||
```
|
||||
|
||||
### 高度な使用例
|
||||
|
||||
```bash
|
||||
# CI/CD パイプラインでの自動チェック
|
||||
/dependency-analysis --circular --fail-on-violation
|
||||
|
||||
# アーキテクチャルールの定義と検証
|
||||
/dependency-analysis --rules .architecture-rules.yml
|
||||
|
||||
# 時系列での依存関係の変化を追跡
|
||||
/dependency-analysis --compare HEAD~10
|
||||
```
|
||||
|
||||
### 設定ファイル例 (.dependency-analysis.yml)
|
||||
|
||||
```yaml
|
||||
rules:
|
||||
- name: "Domain Independence"
|
||||
source: "src/domain/**"
|
||||
forbidden: ["src/infra/**", "src/api/**"]
|
||||
|
||||
- name: "API Layer Dependencies"
|
||||
source: "src/api/**"
|
||||
allowed: ["src/domain/**", "src/application/**"]
|
||||
forbidden: ["src/infra/**"]
|
||||
|
||||
thresholds:
|
||||
max_dependencies: 8
|
||||
max_depth: 4
|
||||
coupling_threshold: 0.7
|
||||
|
||||
ignore:
|
||||
- "**/test/**"
|
||||
- "**/mocks/**"
|
||||
```
|
||||
|
||||
### 統合ツール
|
||||
|
||||
- `madge` : JavaScript/TypeScript の依存関係可視化
|
||||
- `dep-cruiser` : 依存関係のルール検証
|
||||
- `nx` : モノレポの依存関係管理
|
||||
- `plato` : 複雑度と依存関係の統合分析
|
||||
|
||||
### Claude との連携
|
||||
|
||||
```bash
|
||||
# package.json を含めた分析
|
||||
cat package.json
|
||||
/analyze-dependencies
|
||||
「このプロジェクトの依存関係の問題点を分析して」
|
||||
|
||||
# 特定モジュールのソースコードと組み合わせ
|
||||
ls -la src/core/
|
||||
/analyze-dependencies --focus src/core
|
||||
「コアモジュールの依存関係を詳細に評価して」
|
||||
|
||||
# アーキテクチャドキュメントとの比較
|
||||
cat docs/architecture.md
|
||||
/analyze-dependencies --visual
|
||||
「設計ドキュメントと実装の乖離を確認して」
|
||||
```
|
||||
|
||||
### 注意事項
|
||||
|
||||
- **前提条件**: プロジェクトルートでの実行が必要
|
||||
- **制限事項**: 大規模プロジェクトでは分析に時間がかかる場合があります
|
||||
- **推奨事項**: 循環依存が発見された場合は即座に対処を検討してください
|
||||
|
||||
### ベストプラクティス
|
||||
|
||||
1. **定期的な分析**: 週次で依存関係の健全性をチェック
|
||||
2. **ルールの明文化**: アーキテクチャルールを設定ファイルで管理
|
||||
3. **段階的改善**: 大規模なリファクタリングは避け、漸進的に改善
|
||||
4. **メトリクス追跡**: 依存関係の複雑度を時系列で監視
|
||||
168
commands/analyze-performance.md
Normal file
168
commands/analyze-performance.md
Normal file
@@ -0,0 +1,168 @@
|
||||
## Analyze Performance
|
||||
|
||||
アプリケーションのパフォーマンスをユーザー体験の観点から分析し、改善による体感速度向上を定量化します。Core Web Vitals に基づく UX スコアを算出し、優先順位付けされた最適化戦略を提案します。
|
||||
|
||||
### UX パフォーマンススコア
|
||||
|
||||
```text
|
||||
ユーザー体験スコア: B+ (78/100)
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
⏱️ Core Web Vitals
|
||||
├─ LCP (読み込み): 2.3 秒 [Good] 目標<2.5 秒 ✅
|
||||
├─ FID (操作反応): 95ms [Good] 目標<100ms ✅
|
||||
├─ CLS (視覚安定): 0.08 [Good] 目標<0.1 ✅
|
||||
├─ FCP (初回描画): 1.8 秒 [Good] 目標<1.8 秒 ✅
|
||||
├─ TTFB (サーバー): 450ms [Needs Work] 目標<200ms ⚠️
|
||||
└─ TTI (操作可能): 3.5 秒 [Needs Work] 目標<3.8 秒 ⚠️
|
||||
|
||||
📊 ユーザー体感速度
|
||||
├─ 初回表示体感: 2.3 秒 [業界平均: 3.0 秒]
|
||||
├─ ページ遷移: 1.1 秒 [業界平均: 1.5 秒]
|
||||
├─ 検索結果表示: 0.8 秒 [業界平均: 1.2 秒]
|
||||
├─ フォーム送信: 1.5 秒 [業界平均: 2.0 秒]
|
||||
└─ 画像読み込み: 遅延ロード実装済み ✅
|
||||
|
||||
😊 ユーザー満足度予測
|
||||
├─ 離脱率予測: 12% (業界平均: 20%)
|
||||
├─ 完了率予測: 78% (目標: 85%)
|
||||
├─ 推奨 NPS: +24 (業界平均: +15)
|
||||
└─ リピート率: 65% (目標: 70%)
|
||||
|
||||
📊 ユーザー体験への影響
|
||||
├─ 表示速度 0.5 秒短縮 → 離脱率 -7%
|
||||
├─ 離脱率 5% 削減 → セッション長 +15%
|
||||
├─ 検索改善 → 滞在時間 +15%
|
||||
└─ 総合的な UX 改善度: +25%
|
||||
|
||||
🎯 改善による期待効果 (優先順位順)
|
||||
├─ [P0] TTFB 改善 (CDN 導入) → LCP -0.3 秒 = 体感速度 +15%
|
||||
├─ [P1] JS バンドル最適化 → TTI -0.8 秒 = 操作可能時間 -20%
|
||||
├─ [P2] 画像最適化 (WebP) → 転送量 -40% = ロード時間 -25%
|
||||
└─ [P3] キャッシュ戦略 → リピート訪問時 50% 高速化
|
||||
```
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
# UX スコアの包括的分析
|
||||
find . -name "*.js" -o -name "*.ts" | xargs wc -l | sort -rn | head -10
|
||||
「UX パフォーマンススコアを算出し、Core Web Vitals を評価して」
|
||||
|
||||
# パフォーマンスボトルネックの検出
|
||||
grep -r "for.*await\|forEach.*await" . --include="*.js"
|
||||
「非同期処理のボトルネックを検出し、ユーザー体感への影響を分析して」
|
||||
|
||||
# ユーザー体験への影響分析
|
||||
grep -r "addEventListener\|setInterval" . --include="*.js" | grep -v "removeEventListener\|clearInterval"
|
||||
「パフォーマンス問題がユーザー体験に与える影響を分析して」
|
||||
```
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# バンドルサイズとロード時間
|
||||
npm ls --depth=0 && find ./public -name "*.js" -o -name "*.css" | xargs ls -lh
|
||||
"バンドルサイズとアセット最適化の改善点を特定して"
|
||||
|
||||
# データベースパフォーマンス
|
||||
grep -r "SELECT\|findAll\|query" . --include="*.js" | head -20
|
||||
"データベースクエリの最適化ポイントを分析して"
|
||||
|
||||
# 依存関係のパフォーマンス影響
|
||||
npm outdated && npm audit
|
||||
"古い依存関係がパフォーマンスに与える影響を評価して"
|
||||
```
|
||||
|
||||
### 分析観点
|
||||
|
||||
#### 1. コードレベルの問題
|
||||
|
||||
- **O(n²) アルゴリズム**: 非効率な配列操作の検出
|
||||
- **同期 I/O**: ブロッキング処理の特定
|
||||
- **重複処理**: 不要な計算やリクエストの削除
|
||||
- **メモリリーク**: イベントリスナーやタイマーの管理
|
||||
|
||||
#### 2. アーキテクチャレベルの問題
|
||||
|
||||
- **N+1 クエリ**: データベースアクセスパターン
|
||||
- **キャッシュ不足**: 繰り返し計算や API 呼び出し
|
||||
- **バンドルサイズ**: 不要なライブラリやコード分割
|
||||
- **リソース管理**: 接続プールやスレッド使用量
|
||||
|
||||
#### 3. 技術的負債による影響
|
||||
|
||||
- **レガシーコード**: 古い実装による性能劣化
|
||||
- **設計の問題**: 責任分散不足による結合度の高さ
|
||||
- **テスト不足**: パフォーマンス回帰の検出漏れ
|
||||
- **監視不足**: 問題の早期発見体制
|
||||
|
||||
### パフォーマンス改善 ROI マトリクス
|
||||
|
||||
```text
|
||||
改善 ROI = (時間削減効果 + 品質向上) ÷ 実装工数
|
||||
```
|
||||
|
||||
| 優先度 | ユーザー体験向上 | 実装難易度 | 時間削減効果 | 具体例 | 工数 | 効果 |
|
||||
| --------------------- | ---------------- | ---------- | ------------ | ------------ | ---- | ----------- |
|
||||
| **[P0] 即実装すべき** | 高 | 低 | > 50% | CDN 導入 | 8h | 応答 -60% |
|
||||
| **[P1] 早期実装推奨** | 高 | 中 | 20-50% | 画像最適化 | 16h | ロード -30% |
|
||||
| **[P2] 計画的実装** | 低 | 高 | 10-20% | コード分割 | 40h | 初回 -15% |
|
||||
| **[P3] 保留/様子見** | 低 | 低 | < 10% | 微細な最適化 | 20h | 部分 -5% |
|
||||
|
||||
#### 優先度判定基準
|
||||
|
||||
- **P0(即実装)**: UX 向上「高」× 難易度「低」= ROI 最大
|
||||
- **P1(早期実装)**: UX 向上「高」× 難易度「中」= ROI 高
|
||||
- **P2(計画的)**: UX 向上「低」× 難易度「高」= ROI 中
|
||||
- **P3(保留)**: UX 向上「低」× 難易度「低」= ROI 低
|
||||
|
||||
### パフォーマンス指標と UX 改善相関
|
||||
|
||||
| 指標 | 改善幅 | 体感速度向上 | ユーザー満足度 | 実装工数 |
|
||||
| ------------------- | ------- | ------------ | -------------- | -------- |
|
||||
| **LCP (読み込み)** | -0.5 秒 | +30% | 離脱率 -7% | 16h |
|
||||
| **FID (操作反応)** | -50ms | +15% | ストレス -20% | 8h |
|
||||
| **CLS (視覚安定)** | -0.05 | +10% | 誤操作 -50% | 4h |
|
||||
| **TTFB (サーバー)** | -200ms | +25% | 体感速度 +40% | 24h |
|
||||
| **TTI (操作可能)** | -1.0 秒 | +35% | 完了率 +15% | 32h |
|
||||
| **バンドルサイズ** | -30% | +20% | 初回訪問 +25% | 16h |
|
||||
|
||||
### 測定とツール
|
||||
|
||||
#### Node.js / JavaScript
|
||||
|
||||
```bash
|
||||
# プロファイリング
|
||||
node --prof app.js
|
||||
clinic doctor -- node app.js
|
||||
|
||||
# バンドル分析
|
||||
npx webpack-bundle-analyzer
|
||||
lighthouse --chrome-flags="--headless"
|
||||
```
|
||||
|
||||
#### データベース
|
||||
|
||||
```sql
|
||||
-- クエリ分析
|
||||
EXPLAIN ANALYZE SELECT ...
|
||||
SHOW SLOW LOG;
|
||||
```
|
||||
|
||||
#### フロントエンド
|
||||
|
||||
```bash
|
||||
# React パフォーマンス
|
||||
grep -r "useMemo\|useCallback" . --include="*.jsx"
|
||||
|
||||
# リソース分析
|
||||
find ./src -name "*.png" -o -name "*.jpg" | xargs ls -lh
|
||||
```
|
||||
|
||||
### 継続的改善
|
||||
|
||||
- **定期監査**: 週次パフォーマンステスト実行
|
||||
- **メトリクス収集**: レスポンス時間、メモリ使用量の追跡
|
||||
- **アラート設定**: 閾値超過時の自動通知
|
||||
- **チーム共有**: 改善事例とアンチパターンの文書化
|
||||
104
commands/check-fact.md
Normal file
104
commands/check-fact.md
Normal file
@@ -0,0 +1,104 @@
|
||||
## Check Fact
|
||||
|
||||
プロジェクト内のコードベース、ドキュメント (docs/、README.md など)を参照し、与えられた情報の正誤を確認するためのコマンド。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
# 基本的な使い方
|
||||
/check-fact "このアプリケーションは Zustand と TanStack Query を使用して状態管理している"
|
||||
|
||||
# 複数の情報を一度に確認
|
||||
/check-fact "このプロジェクトは tRPC と TanStack Router でタイプセーフな API 通信とルーティングを実現している"
|
||||
|
||||
# 特定の技術仕様について確認
|
||||
/check-fact "認証には Clerk または Supabase Auth を使用し、パスキー認証が実装されている"
|
||||
```
|
||||
|
||||
### 確認プロセス
|
||||
|
||||
1. **情報源の優先順位**
|
||||
- コードベース (最も信頼性が高い)
|
||||
- README.md、docs/ 内ドキュメント
|
||||
- 設定ファイル (package.json、tsconfig.json、next.config.js、.env.local 等)
|
||||
- Issue、Pull Requestの議論履歴
|
||||
|
||||
2. **判定結果の分類**
|
||||
- `✅ 正しい` - 情報がコードベースと完全に一致
|
||||
- `❌ 誤り` - 情報が明確に間違っている
|
||||
- `⚠️ 一部正しい` - 部分的に正確だが不完全
|
||||
- `❓ 判断不可` - 確認に必要な情報が不足
|
||||
|
||||
3. **根拠の明示**
|
||||
- 該当ファイル名と行番号
|
||||
- 関連するコードスニペット
|
||||
- ドキュメントの該当箇所
|
||||
|
||||
### 報告形式
|
||||
|
||||
```text
|
||||
## ファクトチェック結果
|
||||
|
||||
### 検証対象
|
||||
「[ユーザーが提供した情報]」
|
||||
|
||||
### 結論
|
||||
[✅/❌/⚠️/❓] [判定結果]
|
||||
|
||||
### 根拠
|
||||
- **ファイル**: `src/components/Auth.tsx:123`
|
||||
- **内容**: [該当するコード/文章]
|
||||
- **補足**: [追加説明]
|
||||
|
||||
### 詳細説明
|
||||
[誤りの場合は正しい情報を提示]
|
||||
[一部正しいの場合は正確でない部分を指摘]
|
||||
[判断不可の場合は不足している情報を説明]
|
||||
```
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# プロジェクト技術スタック確認
|
||||
/check-fact "このアプリは Next.js 14 + Server Actions + Prisma の構成になっている"
|
||||
|
||||
# 実装状況確認
|
||||
/check-fact "Next.js 14 の App Router で RSC (React Server Components) と Streaming が活用されている"
|
||||
|
||||
# アーキテクチャ確認
|
||||
/check-fact "サーバー状態は TanStack Query で、クライアント状態は Zustand で管理し、Redux は使用していない"
|
||||
|
||||
# セキュリティ実装確認
|
||||
/check-fact "認証は Edge Runtime 上で JWT を使用し、Middleware で保護されている"
|
||||
```
|
||||
|
||||
### Claudeとの連携
|
||||
|
||||
```bash
|
||||
# コードベース全体の分析後に確認
|
||||
ls -la && cat package.json | jq '{next: .dependencies.next, react: .dependencies.react, typescript: .devDependencies.typescript}'
|
||||
/check-fact "このプロジェクトで使用している主要な依存関係は..."
|
||||
|
||||
# 特定機能の実装状況確認
|
||||
grep -r "use server\|use client\|async function" . --include="*.tsx" --include="*.ts"
|
||||
/check-fact "Server Actions と Form Actions を使用してプログレッシブエンハンスメントが実装されている"
|
||||
|
||||
# ドキュメントとの整合性確認
|
||||
cat README.md
|
||||
/check-fact "README に記載されている機能は全て実装済み"
|
||||
```
|
||||
|
||||
### 活用シーン
|
||||
|
||||
- 技術仕様書作成時: 記載内容の正確性確認
|
||||
- プロジェクト引き継ぎ時: 既存実装の理解確認
|
||||
- クライアント報告前: 実装状況の事実確認
|
||||
- 技術ブログ執筆時: 記事内容の正確性検証
|
||||
- 面接・説明資料作成時: プロジェクト概要の正確性確認
|
||||
|
||||
### 注意事項
|
||||
|
||||
- コードベースが最も信頼性の高い情報源です
|
||||
- ドキュメントが古い場合は、実装を優先します
|
||||
- 判断に必要な情報が不足している場合は素直に「判断不可」とします
|
||||
- セキュリティに関わる情報は特に慎重に検証します
|
||||
53
commands/check-github-ci.md
Normal file
53
commands/check-github-ci.md
Normal file
@@ -0,0 +1,53 @@
|
||||
## GitHub CI Monitoring
|
||||
|
||||
GitHub Actions CI 状況を監視して、完了まで追跡します。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
# CI チェック状況を確認
|
||||
gh pr checks
|
||||
```
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# PR 作成後の CI 確認
|
||||
gh pr create --title "新機能の追加" --body "説明"
|
||||
gh pr checks
|
||||
```
|
||||
|
||||
### Claude との連携
|
||||
|
||||
```bash
|
||||
# CI 確認から修正までの流れ
|
||||
gh pr checks
|
||||
「CI チェック結果を分析し、失敗項目があれば修正方法を提案して」
|
||||
|
||||
# 修正後の再確認
|
||||
git push origin feature-branch
|
||||
gh pr checks
|
||||
「修正後の CI 結果を確認して、問題がないことを確認して」
|
||||
```
|
||||
|
||||
### 実行結果の例
|
||||
|
||||
```text
|
||||
All checks were successful
|
||||
0 cancelled, 0 failing, 8 successful, 3 skipped, and 0 pending checks
|
||||
|
||||
NAME DESCRIPTION ELAPSED URL
|
||||
○ Build/test (pull_request) 5m20s https://github.com/user/repo/actions/runs/123456789
|
||||
○ Build/lint (pull_request) 2m15s https://github.com/user/repo/actions/runs/123456789
|
||||
○ Security/scan (pull_request) 1m30s https://github.com/user/repo/actions/runs/123456789
|
||||
○ Type Check (pull_request) 45s https://github.com/user/repo/actions/runs/123456789
|
||||
○ Commit Messages (pull_request) 12s https://github.com/user/repo/actions/runs/123456789
|
||||
- Deploy Preview (pull_request) https://github.com/user/repo/actions/runs/123456789
|
||||
- Visual Test (pull_request) https://github.com/user/repo/actions/runs/123456789
|
||||
```
|
||||
|
||||
### 注意事項
|
||||
|
||||
- 失敗時は詳細確認
|
||||
- 全チェック完了まで待機してからマージ
|
||||
- 必要に応じて `gh pr checks` を再実行
|
||||
461
commands/check-prompt.md
Normal file
461
commands/check-prompt.md
Normal file
@@ -0,0 +1,461 @@
|
||||
## Check Prompt
|
||||
|
||||
AI Agent 向けプロンプトの品質を評価・改善するための包括的ベストプラクティス集です。実際のプロンプト改善プロセスで培った知見を体系化し、曖昧性の排除・情報統合・強制力強化・追跡システム・継続改善など、すべての重要観点を網羅しています。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
# プロンプトファイルの品質をチェック
|
||||
cat your-prompt.md
|
||||
/check-prompt
|
||||
「このプロンプトの品質をチェックして改善案を提示して」
|
||||
```
|
||||
|
||||
### オプション
|
||||
|
||||
- なし : 現在のファイルまたは選択したテキストを分析
|
||||
- `--category <name>` : 特定カテゴリのみをチェック (structure/execution/restrictions/quality/roles/improvement)
|
||||
- `--score` : 品質スコアのみを算出
|
||||
- `--fix` : 検出された問題を自動修正提案
|
||||
- `--deep` : 深層分析モード (曖昧性・情報分散・強制力を重点チェック)
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# プロンプト全体の品質評価
|
||||
cat devin/playbooks/code-review.md
|
||||
/check-prompt
|
||||
「このプロンプトの品質を 6 つのカテゴリで評価して、問題点と改善案を提示して」
|
||||
|
||||
# 深層分析モード
|
||||
/check-prompt --deep
|
||||
「曖昧性・情報分散・強制力不足を重点的にチェックして根本的な改善案を提示して」
|
||||
|
||||
# 特定カテゴリのチェック
|
||||
/check-prompt --category structure
|
||||
「構造と明確性の観点でこのプロンプトをチェックして」
|
||||
|
||||
# 曖昧表現の検出と修正
|
||||
/check-prompt --fix
|
||||
「曖昧表現を検出して明確な表現に修正提案して」
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 核心的な設計原則
|
||||
|
||||
### 原則 1: 解釈の余地を完全に排除
|
||||
|
||||
- **絶対禁止**: 「原則として」「推奨」「可能であれば」「状況に応じて」「適宜判断」
|
||||
- **必須使用**: 「必ず」「絶対に」「厳守」「例外なく」「強制」
|
||||
- **例外条件**: 数値で厳格に限定 (「以下の 3 つの条件のみ」「この 2 つの場合を除いて」)
|
||||
|
||||
### 原則 2: 情報の戦略的統合
|
||||
|
||||
- 関連する重要情報は 1 つのセクションに完全統合
|
||||
- 実行チェックリストに全体像を要約
|
||||
- 参照の循環や分散を徹底排除
|
||||
|
||||
### 原則 3: 段階的強制力の構築
|
||||
|
||||
- 🔴 (実行停止レベル) → 🟡 (品質重要) → 🟢 (推奨事項) の明確な階層
|
||||
- 推奨レベルから必須レベルへの段階的格上げ
|
||||
- 違反時の影響度と対処法の明示
|
||||
|
||||
### 原則 4: 追跡可能性の確保
|
||||
|
||||
- すべての実行結果を記録・検証可能
|
||||
- 虚偽報告を技術的に防止
|
||||
- 成功/失敗の客観的判断基準
|
||||
|
||||
### 原則 5: フィードバック駆動改善
|
||||
|
||||
- 実際の失敗事例から学習
|
||||
- 継続的な有効性検証
|
||||
- 新パターンの自動検出
|
||||
|
||||
---
|
||||
|
||||
## 📋 包括的チェック項目
|
||||
|
||||
### 1. 📐 構造と明確性 (配点: 25 点)
|
||||
|
||||
#### 1.1 指示の優先度表示 (8 点)
|
||||
|
||||
- [ ] 🔴🟡🟢 の優先度が全ての重要指示に明示されている
|
||||
- [ ] 実行停止レベルの条件が具体的かつ明確に定義されている
|
||||
- [ ] 各優先度の判断基準が客観的かつ検証可能
|
||||
- [ ] 優先度の階層が一貫して適用されている
|
||||
|
||||
#### 1.2 曖昧表現の完全排除 (9 点)
|
||||
|
||||
- [ ] **致命的曖昧表現**: 「原則として」「推奨」「可能であれば」が 0 個
|
||||
- [ ] **強制表現の使用**: 「必ず」「絶対に」「厳守」「例外なく」を適切に使用
|
||||
- [ ] **例外条件の数値限定**: 「3 つの条件のみ」など明確な境界線
|
||||
- [ ] **判断余地の排除**: 複数解釈が不可能な表現のみ使用
|
||||
- [ ] **グレーゾーンの撲滅**: すべての状況で明確な判断基準
|
||||
|
||||
#### 1.3 情報の戦略的統合 (8 点)
|
||||
|
||||
- [ ] 重要情報の複数箇所分散が完全に解消されている
|
||||
- [ ] 関連指示が論理的に 1 つのセクションに統合されている
|
||||
- [ ] 実行チェックリストに全体像が漏れなく要約されている
|
||||
- [ ] 参照の循環や無限ループが存在しない
|
||||
|
||||
### 2. 🎯 実行可能性 (配点: 20 点)
|
||||
|
||||
#### 2.1 具体的な手順の完全性 (7 点)
|
||||
|
||||
- [ ] すべてのコマンド例が実際に実行可能で検証済み
|
||||
- [ ] 環境変数・前提条件・依存関係が漏れなく明記
|
||||
- [ ] エラー時の対処法が具体的かつ実行可能
|
||||
- [ ] 手順の順序が論理的で必然性がある
|
||||
|
||||
#### 2.2 検証可能性の確保 (7 点)
|
||||
|
||||
- [ ] 実行結果の成功/失敗が客観的に判断可能
|
||||
- [ ] 出力例・ログ形式・期待値が具体的に示されている
|
||||
- [ ] テスト方法・検証手順が実装可能
|
||||
- [ ] 中間結果の確認ポイントが適切に配置
|
||||
|
||||
#### 2.3 自動化適応性 (6 点)
|
||||
|
||||
- [ ] スクリプト化・CI/CD 統合が容易な形式
|
||||
- [ ] 人間判断箇所と AI 実行箇所の明確な分離
|
||||
- [ ] バッチ処理・並列実行への対応
|
||||
|
||||
### 3. 🚫 禁止事項の明確化 (配点: 15 点)
|
||||
|
||||
#### 3.1 絶対禁止事項の体系化 (8 点)
|
||||
|
||||
- [ ] 実行してはならない操作の完全なリストアップ
|
||||
- [ ] 各禁止事項の違反時影響度 (軽微/重大/致命的) の明示
|
||||
- [ ] 代替手段・回避方法の具体的提示
|
||||
- [ ] 禁止事項の技術的根拠の説明
|
||||
|
||||
#### 3.2 例外条件の厳格限定 (7 点)
|
||||
|
||||
- [ ] 例外を認める条件が具体的かつ限定的 (数値指定)
|
||||
- [ ] 「完全に重複」「明示的に記載」など客観的判断基準
|
||||
- [ ] グレーゾーンを残さない明確な境界線
|
||||
- [ ] 例外適用時の追加条件・制約の明示
|
||||
|
||||
### 4. 📊 品質保証メカニズム (配点: 20 点)
|
||||
|
||||
#### 4.1 追跡システムの完全性 (8 点)
|
||||
|
||||
- [ ] 全実行結果の自動記録・統計取得機能
|
||||
- [ ] 虚偽報告を技術的に防ぐ検証機能
|
||||
- [ ] リアルタイム監視・アラート機能
|
||||
- [ ] 監査ログの改ざん防止機能
|
||||
|
||||
#### 4.2 テンプレート遵守の強制 (7 点)
|
||||
|
||||
- [ ] 必須要素の明確な定義とチェック機能
|
||||
- [ ] カスタマイズ禁止箇所の技術的制限
|
||||
- [ ] 遵守確認の自動化されたチェックポイント
|
||||
- [ ] 違反時の自動修正・警告機能
|
||||
|
||||
#### 4.3 エラーハンドリングの網羅性 (5 点)
|
||||
|
||||
- [ ] 想定エラーパターンの完全なカタログ化
|
||||
- [ ] エラー時の段階的対処プロセス
|
||||
- [ ] 失敗を成功として報告することの技術的防止
|
||||
|
||||
### 5. 🎭 役割と責任の明確化 (配点: 10 点)
|
||||
|
||||
#### 5.1 AI Agent の権限範囲 (5 点)
|
||||
|
||||
- [ ] 実行可能操作と禁止操作の明確な境界線
|
||||
- [ ] 判断権限の具体的な範囲と制約
|
||||
- [ ] 人間確認が必要な操作の明確な分離
|
||||
|
||||
#### 5.2 分類システムの統一 (5 点)
|
||||
|
||||
- [ ] 分類定義の明確性・一意性・排他性
|
||||
- [ ] 分類間の重要度誤解を防ぐ明示的説明
|
||||
- [ ] 各分類の具体的使用例と判断フローチャート
|
||||
|
||||
### 6. 🔄 継続改善 (配点: 10 点)
|
||||
|
||||
#### 6.1 フィードバック収集の自動化 (5 点)
|
||||
|
||||
- [ ] 実行ログからの自動改善点抽出
|
||||
- [ ] 失敗パターンの機械学習ベース分析
|
||||
- [ ] ベストプラクティスの自動更新メカニズム
|
||||
|
||||
#### 6.2 学習機能の実装 (5 点)
|
||||
|
||||
- [ ] 新パターンの自動検出・分類
|
||||
- [ ] 既存ルールの有効性継続監視
|
||||
- [ ] 段階的改善の自動提案
|
||||
|
||||
---
|
||||
|
||||
## 🚨 致命的な問題パターン (即修正要)
|
||||
|
||||
### ❌ レベル 1: 致命的曖昧性 (実行停止レベル)
|
||||
|
||||
- **複数解釈可能な指示**: 「適宜判断して」「状況に応じて」「原則として」
|
||||
- **曖昧な例外条件**: 「特別な場合は」「必要に応じて」
|
||||
- **主観的判断基準**: 「適切に」「十分に」「可能な限り」
|
||||
- **未定義の重要概念**: 「標準的な」「一般的な」「基本的な」
|
||||
|
||||
### ❌ レベル 2: 構造的欠陥 (品質重要レベル)
|
||||
|
||||
- **情報の分散**: 関連重要情報が 3 箇所以上に散在
|
||||
- **循環参照**: セクション A→B→C→A の無限ループ
|
||||
- **矛盾する指示**: 異なるセクションで相反する指示
|
||||
- **実行順序の不明確**: 依存関係が不明瞭な手順
|
||||
|
||||
### ❌ レベル 3: 品質劣化 (推奨改善レベル)
|
||||
|
||||
- **検証不可能性**: 成功/失敗の判断基準が不明
|
||||
- **自動化困難**: 人間の主観判断に依存する設計
|
||||
- **保守困難**: 更新時の影響範囲が予測できない構造
|
||||
- **学習困難**: 新人が理解するのに時間がかかる複雑さ
|
||||
|
||||
---
|
||||
|
||||
## 🎯 実証された改善手法
|
||||
|
||||
### ✅ 段階的強化アプローチ
|
||||
|
||||
1. **現状分析**: 問題の分類・優先度付け・影響度評価
|
||||
2. **致命的問題優先**: レベル 1 問題の完全解決を最優先
|
||||
3. **段階的実装**: 一度に全変更せず、検証可能な単位で実施
|
||||
4. **効果測定**: 改善前後の定量的比較
|
||||
5. **継続監視**: 改善効果の持続性確認
|
||||
|
||||
### ✅ 曖昧性排除の実践手法
|
||||
|
||||
```markdown
|
||||
# ❌ 改善前 (曖昧)
|
||||
|
||||
「指摘事項は、原則として GitHub 上の該当する変更箇所にインラインコメントとして記述してください」
|
||||
|
||||
# ✅ 改善後 (明確)
|
||||
|
||||
「指摘事項は GitHub 上の該当する変更箇所にインラインコメントとして必ず記述してください。例外はセクション 3.3 で定義された 3 つの条件のみです」
|
||||
```
|
||||
|
||||
### ✅ 情報統合の実践手法
|
||||
|
||||
```markdown
|
||||
# ❌ 改善前 (分散)
|
||||
|
||||
セクション 2.1: 「必須 6 セクション使用」
|
||||
セクション 3.5: 「📊 総合評価、📋 指摘事項...」
|
||||
セクション 4.2: 「セクション削除禁止」
|
||||
|
||||
# ✅ 改善後 (統合)
|
||||
|
||||
実行チェックリスト:
|
||||
□ 10. サマリーコメントを投稿 (必須 6 セクション使用)
|
||||
🔴 必須 6 セクション: 1) 📊 総合評価 2) 📋 指摘事項の分類別集計 3) ⚠️ 主要な懸念事項 4) ✅ 評価できる点 5) 🎯 結論 6) 🤖 AI レビュー品質の自己評価
|
||||
❌ 絶対禁止:セクション削除・追加・名前変更
|
||||
```
|
||||
|
||||
### ✅ 追跡システムの実装パターン
|
||||
|
||||
```bash
|
||||
# 実行結果の厳格な追跡
|
||||
POSTED_COMMENTS=0
|
||||
FAILED_COMMENTS=0
|
||||
TOTAL_COMMENTS=0
|
||||
|
||||
# 各操作の結果記録
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "✅ 成功: $OPERATION" >> /tmp/execution_log.txt
|
||||
POSTED_COMMENTS=$((POSTED_COMMENTS + 1))
|
||||
else
|
||||
echo "❌ 失敗: $OPERATION" >> /tmp/execution_log.txt
|
||||
FAILED_COMMENTS=$((FAILED_COMMENTS + 1))
|
||||
fi
|
||||
|
||||
# 虚偽報告の防止
|
||||
if [ $POSTED_COMMENTS -ne $REPORTED_COMMENTS ]; then
|
||||
echo "🚨 警告: 報告数と実際の投稿数が不一致"
|
||||
exit 1
|
||||
fi
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📈 品質スコア計算 (改良版)
|
||||
|
||||
### 総合スコア算出
|
||||
|
||||
```text
|
||||
基本スコア = Σ(各カテゴリスコア × 配点) / 100
|
||||
|
||||
致命的問題ペナルティ:
|
||||
- レベル 1 問題: -20 点/件
|
||||
- レベル 2 問題: -10 点/件
|
||||
- レベル 3 問題: -5 点/件
|
||||
|
||||
ボーナス要素:
|
||||
- 自動化対応: +5 点
|
||||
- 学習機能実装: +5 点
|
||||
- 実証済み改善事例: +5 点
|
||||
|
||||
最終スコア = 基本スコア + ボーナス - ペナルティ
|
||||
```
|
||||
|
||||
### 品質レベル判定
|
||||
|
||||
```text
|
||||
95-100 点: 世界最高水準 (業界標準として推奨可能)
|
||||
90-94 点: 優秀 (本番運用可能)
|
||||
80-89 点: 良好 (軽微な改善で運用可能)
|
||||
70-79 点: 普通 (改善必要)
|
||||
60-69 点: 要改善 (大幅な修正必要)
|
||||
50-59 点: 要大幅修正 (根本的な見直し必要)
|
||||
49 点以下: 使用禁止 (完全な再設計必要)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 実践的な改善プロセス
|
||||
|
||||
### フェーズ 1: 診断・分析 (1-2 日)
|
||||
|
||||
1. **全体構造の把握**: セクション構成・情報フロー・依存関係の可視化
|
||||
2. **曖昧性検出**: 解釈余地のある表現の全件抽出
|
||||
3. **情報分散分析**: 関連情報の散在パターンのマッピング
|
||||
4. **強制力評価**: 推奨/必須の分類と実効性の評価
|
||||
5. **追跡可能性確認**: 実行結果の記録・検証機能の評価
|
||||
|
||||
### フェーズ 2: 優先度付け・計画 (半日)
|
||||
|
||||
1. **致命度分類**: レベル 1-3 の問題分類と影響度評価
|
||||
2. **改善順序決定**: 相互依存関係を考慮した最適順序
|
||||
3. **リソース配分**: 改善効果とコストのバランス最適化
|
||||
4. **リスク評価**: 改善時の副作用・互換性問題の予測
|
||||
|
||||
### フェーズ 3: 段階的実装 (2-5 日)
|
||||
|
||||
1. **レベル 1 問題解決**: 致命的曖昧性の完全排除
|
||||
2. **情報統合実施**: 分散情報の戦略的集約
|
||||
3. **強制力強化**: 推奨 → 必須への段階的格上げ
|
||||
4. **追跡システム実装**: 実行結果の自動記録・検証機能
|
||||
5. **テンプレート強化**: 必須要素の明確化と遵守強制
|
||||
|
||||
### フェーズ 4: 検証・調整 (1-2 日)
|
||||
|
||||
1. **機能テスト**: 全ての変更点の動作確認
|
||||
2. **統合テスト**: システム全体の整合性確認
|
||||
3. **パフォーマンステスト**: 実行効率・レスポンス確認
|
||||
4. **ユーザビリティテスト**: 実際の使用シナリオでの検証
|
||||
|
||||
### フェーズ 5: 運用・監視 (継続)
|
||||
|
||||
1. **効果測定**: 改善前後の定量的比較
|
||||
2. **継続監視**: 品質劣化の早期検出
|
||||
3. **フィードバック収集**: 実運用での問題点抽出
|
||||
4. **最適化継続**: 継続的な改善サイクル
|
||||
|
||||
---
|
||||
|
||||
## 📊 実際の改善事例 (詳細版)
|
||||
|
||||
### ケーススタディ: 大規模プロンプトの品質改善
|
||||
|
||||
#### 改善前の状況
|
||||
|
||||
```bash
|
||||
品質スコア: 70 点/100 点
|
||||
- 曖昧表現: 15 箇所発見
|
||||
- 情報分散: 6 箇所に重要情報が散在
|
||||
- 強制力不足: 推奨レベル表現が 80%
|
||||
- 追跡機能: 実行結果の記録なし
|
||||
- エラー処理: 失敗時の対処法不明確
|
||||
```
|
||||
|
||||
#### 実施した改善内容
|
||||
|
||||
```bash
|
||||
# 1. 曖昧性排除 (2 日間)
|
||||
- 「原則として」→「例外はセクション 3.3 の 3 つの条件のみ」
|
||||
- 「推奨」→「必須」(重要度レベル 2 以上)
|
||||
- 「適宜」→具体的な判断基準の明示
|
||||
|
||||
# 2. 情報統合 (1 日間)
|
||||
- 分散していた必須 6 セクション情報→実行チェックリストに統合
|
||||
- 関連する禁止事項→1 つのセクションに集約
|
||||
- 参照の循環を解消→線形の情報フロー
|
||||
|
||||
# 3. 追跡システム実装 (1 日間)
|
||||
- 実行結果の自動ログ記録
|
||||
- 虚偽報告防止の検証機能
|
||||
- リアルタイム統計表示
|
||||
|
||||
# 4. エラー処理強化 (半日)
|
||||
- 想定エラーパターンの完全カタログ化
|
||||
- 段階的対処プロセスの明文化
|
||||
- 自動回復機能の実装
|
||||
```
|
||||
|
||||
#### 改善後の結果
|
||||
|
||||
```bash
|
||||
品質スコア: 90 点/100 点 (+20 点向上)
|
||||
- 曖昧表現: 0 箇所 (完全排除)
|
||||
- 情報統合: 重要情報を 3 箇所に集約
|
||||
- 強制力: 必須レベル表現 95%
|
||||
- 追跡機能: 完全自動化
|
||||
- エラー処理: 90% の問題を自動解決
|
||||
|
||||
実際の改善効果:
|
||||
- 判断ミス: 85% 減少
|
||||
- 実行時間: 40% 短縮
|
||||
- エラー発生率: 70% 減少
|
||||
- ユーザー満足度: 95% 向上
|
||||
```
|
||||
|
||||
### 教訓・ベストプラクティス
|
||||
|
||||
#### 成功要因
|
||||
|
||||
1. **段階的アプローチ**: 一度に全変更せず、検証可能な単位で実施
|
||||
2. **データ駆動**: 主観的判断ではなく、実測データに基づく改善
|
||||
3. **継続監視**: 改善効果の持続性を定期的に確認
|
||||
4. **フィードバック重視**: 実際の使用者からの意見を積極的に収集
|
||||
|
||||
#### 失敗回避策
|
||||
|
||||
1. **過度の完璧主義**: 90 点到達で一旦運用開始、継続改善で 100 点目指す
|
||||
2. **一括変更の危険性**: 大規模変更は必ず段階的に実施
|
||||
3. **後方互換性**: 既存ワークフローへの影響を最小限に抑制
|
||||
4. **ドキュメント不足**: すべての変更を詳細に記録・共有
|
||||
|
||||
---
|
||||
|
||||
### Claude との連携
|
||||
|
||||
```bash
|
||||
# プロンプトファイルと組み合わせた品質チェック
|
||||
cat your-prompt.md
|
||||
/check-prompt
|
||||
「このプロンプトの品質を評価して、改善点を提案して」
|
||||
|
||||
# 複数のプロンプトファイルの比較
|
||||
cat prompt-v1.md && echo "---" && cat prompt-v2.md
|
||||
/check-prompt
|
||||
「2 つのバージョンを比較して、改善された点と残る課題を分析して」
|
||||
|
||||
# 実際のエラーログと組み合わせた分析
|
||||
cat execution-errors.log
|
||||
/check-prompt --deep
|
||||
「このエラーを引き起こした可能性のあるプロンプトの問題点を特定して」
|
||||
```
|
||||
|
||||
### 注意事項
|
||||
|
||||
- **前提条件**: プロンプトファイルは Markdown 形式で記述されていることを推奨
|
||||
- **制限事項**: 大規模なプロンプト (1 万行以上) の場合、分割して分析することを推奨
|
||||
- **推奨事項**: 定期的にプロンプトの品質チェックを実施し、継続的に改善してください
|
||||
|
||||
---
|
||||
|
||||
_このチェックリストは実際のプロンプト改善プロジェクトで実証された知見の完全版であり、継続的に進化し続けます。_
|
||||
354
commands/commit-message.md
Normal file
354
commands/commit-message.md
Normal file
@@ -0,0 +1,354 @@
|
||||
## Commit Message
|
||||
|
||||
ステージングされた変更 (git diff --staged) から適切なコミットメッセージを生成します。git コマンドの実行は行わず、メッセージの生成とクリップボードへのコピーのみを行います。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
/commit-message [オプション]
|
||||
```
|
||||
|
||||
### オプション
|
||||
|
||||
- `--format <形式>` : メッセージ形式を指定 (conventional, gitmoji, angular)
|
||||
- `--lang <言語>` : メッセージ言語を強制指定 (en, ja)
|
||||
- `--breaking` : Breaking Change の検出と記載
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# ステージングされた変更からメッセージ生成 (言語自動判定)
|
||||
# メイン候補が自動的にクリップボードにコピーされます
|
||||
/commit-message
|
||||
|
||||
# 言語を強制的に指定
|
||||
/commit-message --lang ja
|
||||
/commit-message --lang en
|
||||
|
||||
# Breaking Change を検出
|
||||
/commit-message --breaking
|
||||
```
|
||||
|
||||
### 前提条件
|
||||
|
||||
**重要**: このコマンドはステージングされた変更のみを分析します。事前に `git add` で変更をステージングしておく必要があります。
|
||||
|
||||
```bash
|
||||
# ステージングされていない場合は警告が表示されます
|
||||
$ /commit-message
|
||||
ステージングされた変更がありません。先に git add を実行してください。
|
||||
```
|
||||
|
||||
### 自動クリップボード機能
|
||||
|
||||
生成されたメイン候補は `git commit -m "メッセージ"` の完全な形式で自動的にクリップボードにコピーされます。ターミナルでそのまま貼り付けて実行できます。
|
||||
|
||||
**実装時の注意**:
|
||||
|
||||
- コミットコマンドを `pbcopy` に渡す際は、メッセージ出力とは別プロセスで実行すること
|
||||
- `echo` の代わりに `printf` を使用して末尾の改行を避けること
|
||||
|
||||
### プロジェクト規約の自動検出
|
||||
|
||||
**重要**: プロジェクト独自の規約が存在する場合は、それを優先します。
|
||||
|
||||
#### 1. CommitLint 設定の確認
|
||||
|
||||
以下のファイルから設定を自動検出:
|
||||
|
||||
- `commitlint.config.js`
|
||||
- `commitlint.config.mjs`
|
||||
- `commitlint.config.cjs`
|
||||
- `commitlint.config.ts`
|
||||
- `.commitlintrc.js`
|
||||
- `.commitlintrc.json`
|
||||
- `.commitlintrc.yml`
|
||||
- `.commitlintrc.yaml`
|
||||
- `package.json` の `commitlint` セクション
|
||||
|
||||
```bash
|
||||
# 設定ファイルの検索
|
||||
find . -name "commitlint.config.*" -o -name ".commitlintrc.*" | head -1
|
||||
```
|
||||
|
||||
#### 2. カスタムタイプの検出
|
||||
|
||||
プロジェクト独自のタイプ例:
|
||||
|
||||
```javascript
|
||||
// commitlint.config.mjs
|
||||
export default {
|
||||
extends: ["@commitlint/config-conventional"],
|
||||
rules: {
|
||||
"type-enum": [
|
||||
2,
|
||||
"always",
|
||||
[
|
||||
"feat",
|
||||
"fix",
|
||||
"docs",
|
||||
"style",
|
||||
"refactor",
|
||||
"test",
|
||||
"chore",
|
||||
"wip", // 作業中
|
||||
"hotfix", // 緊急修正
|
||||
"release", // リリース
|
||||
"deps", // 依存関係更新
|
||||
"config", // 設定変更
|
||||
],
|
||||
],
|
||||
},
|
||||
};
|
||||
```
|
||||
|
||||
#### 3. 言語設定の検出
|
||||
|
||||
```javascript
|
||||
// プロジェクトが日本語メッセージを使用する場合
|
||||
export default {
|
||||
rules: {
|
||||
"subject-case": [0], // 日本語対応のため無効化
|
||||
"subject-max-length": [2, "always", 72], // 日本語は文字数制限を調整
|
||||
},
|
||||
};
|
||||
```
|
||||
|
||||
#### 4. 既存コミット履歴の分析
|
||||
|
||||
```bash
|
||||
# 最近のコミットから使用パターンを学習
|
||||
git log --oneline -50 --pretty=format:"%s"
|
||||
|
||||
# 使用タイプ統計
|
||||
git log --oneline -100 --pretty=format:"%s" | \
|
||||
grep -oE '^[a-z]+(\([^)]+\))?' | \
|
||||
sort | uniq -c | sort -nr
|
||||
```
|
||||
|
||||
### 言語の自動判定
|
||||
|
||||
以下の条件で自動的に日本語/英語を切り替えます:
|
||||
|
||||
1. **CommitLint 設定**から言語設定を確認
|
||||
2. **git log 分析**による自動判定
|
||||
3. **プロジェクトファイル**の言語設定
|
||||
4. **変更ファイル内**のコメント・文字列分析
|
||||
|
||||
デフォルトは英語。日本語プロジェクトと判定された場合は日本語で生成。
|
||||
|
||||
### メッセージ形式
|
||||
|
||||
#### Conventional Commits (デフォルト)
|
||||
|
||||
```text
|
||||
<type>: <description>
|
||||
```
|
||||
|
||||
**重要**: 必ず 1 行のコミットメッセージを生成します。複数行のメッセージは生成しません。
|
||||
|
||||
**注意**: プロジェクト独自の規約がある場合は、それを優先します。
|
||||
|
||||
### 標準タイプ
|
||||
|
||||
**必須タイプ**:
|
||||
|
||||
- `feat`: 新機能 (ユーザーに見える機能追加)
|
||||
- `fix`: バグ修正
|
||||
|
||||
**任意タイプ**:
|
||||
|
||||
- `build`: ビルドシステムや外部依存関係の変更
|
||||
- `chore`: その他の変更 (リリースに影響しない)
|
||||
- `ci`: CI 設定ファイルやスクリプトの変更
|
||||
- `docs`: ドキュメントのみの変更
|
||||
- `style`: コードの意味に影響しない変更 (空白、フォーマット、セミコロンなど)
|
||||
- `refactor`: バグ修正や機能追加を伴わないコード変更
|
||||
- `perf`: パフォーマンス改善
|
||||
- `test`: テストの追加や修正
|
||||
|
||||
### 出力例 (英語プロジェクト)
|
||||
|
||||
```bash
|
||||
$ /commit-message
|
||||
|
||||
📝 コミットメッセージ提案
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
✨ メイン候補:
|
||||
feat: implement JWT-based authentication system
|
||||
|
||||
📋 代替案:
|
||||
1. feat: add user authentication with JWT tokens
|
||||
2. fix: resolve token validation error in auth middleware
|
||||
3. refactor: extract auth logic into separate module
|
||||
|
||||
✅ `git commit -m "feat: implement JWT-based authentication system"` をクリップボードにコピーしました
|
||||
```
|
||||
|
||||
**実装例 (修正版)**:
|
||||
|
||||
```bash
|
||||
# コミットコマンドを先にクリップボードにコピー (改行なし)
|
||||
printf 'git commit -m "%s"' "$COMMIT_MESSAGE" | pbcopy
|
||||
|
||||
# その後でメッセージを表示
|
||||
cat << EOF
|
||||
📝 コミットメッセージ提案
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
✨ メイン候補:
|
||||
$COMMIT_MESSAGE
|
||||
|
||||
📋 代替案:
|
||||
1. ...
|
||||
2. ...
|
||||
3. ...
|
||||
|
||||
✅ \`git commit -m "$COMMIT_MESSAGE"\` をクリップボードにコピーしました
|
||||
EOF
|
||||
```
|
||||
|
||||
### 出力例 (日本語プロジェクト)
|
||||
|
||||
```bash
|
||||
$ /commit-message
|
||||
|
||||
📝 コミットメッセージ提案
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
✨ メイン候補:
|
||||
feat: JWT 認証システムを実装
|
||||
|
||||
📋 代替案:
|
||||
1. feat: JWT トークンによるユーザー認証を追加
|
||||
2. fix: 認証ミドルウェアのトークン検証エラーを解決
|
||||
3. docs: 認証ロジックを別モジュールに分離
|
||||
|
||||
✅ `git commit -m "feat: JWT 認証システムを実装"` をクリップボードにコピーしました
|
||||
```
|
||||
|
||||
### 動作概要
|
||||
|
||||
1. **分析**: `git diff --staged` の内容を分析
|
||||
2. **生成**: 適切なコミットメッセージを生成
|
||||
3. **コピー**: メイン候補を自動的にクリップボードへコピー
|
||||
|
||||
**注意**: このコマンドは git add や git commit を実行しません。コミットメッセージの生成とクリップボードへのコピーのみを行います。
|
||||
|
||||
### スマート機能
|
||||
|
||||
#### 1. 変更内容の自動分類 (ステージングされたファイルのみ)
|
||||
|
||||
- 新ファイル追加 → `feat`
|
||||
- エラー修正パターン → `fix`
|
||||
- テストファイルのみ → `test`
|
||||
- 設定ファイル変更 → `chore`
|
||||
- README/docs 更新 → `docs`
|
||||
|
||||
#### 2. プロジェクト規約の自動検出
|
||||
|
||||
- `.gitmessage` ファイル
|
||||
- `CONTRIBUTING.md` 内の規約
|
||||
- 過去のコミット履歴パターン
|
||||
|
||||
#### 3. 言語判定の詳細 (ステージングされた変更のみ)
|
||||
|
||||
```bash
|
||||
# 判定基準 (優先順位)
|
||||
1. git diff --staged の内容から言語を判定
|
||||
2. ステージングされたファイルのコメント分析
|
||||
3. git log --oneline -20 の言語分析
|
||||
4. プロジェクトのメイン言語設定
|
||||
```
|
||||
|
||||
#### 4. ステージング分析の詳細
|
||||
|
||||
分析に使用する情報 (読み取りのみ):
|
||||
|
||||
- `git diff --staged --name-only` - 変更ファイル一覧
|
||||
- `git diff --staged` - 実際の変更内容
|
||||
- `git status --porcelain` - ファイル状態
|
||||
|
||||
### Breaking Change 検出時
|
||||
|
||||
API の破壊的変更がある場合:
|
||||
|
||||
**英語**:
|
||||
|
||||
```bash
|
||||
feat!: change user API response format
|
||||
|
||||
BREAKING CHANGE: user response now includes additional metadata
|
||||
```
|
||||
|
||||
または
|
||||
|
||||
```bash
|
||||
feat(api)!: change authentication flow
|
||||
```
|
||||
|
||||
**日本語**:
|
||||
|
||||
```bash
|
||||
feat!: ユーザー API レスポンス形式を変更
|
||||
|
||||
BREAKING CHANGE: レスポンスに追加のメタデータが含まれるようになりました
|
||||
```
|
||||
|
||||
または
|
||||
|
||||
```bash
|
||||
feat(api)!: 認証フローを変更
|
||||
```
|
||||
|
||||
### ベストプラクティス
|
||||
|
||||
1. **プロジェクトに合わせる**: 既存のコミット言語に従う
|
||||
2. **簡潔性**: 50 文字以内で明確に
|
||||
3. **一貫性**: 混在させない (英語なら英語で統一)
|
||||
4. **OSS**: オープンソースなら英語推奨
|
||||
5. **1 行厳守**: 必ず 1 行のコミットメッセージにする (詳細な説明が必要な場合は PR で補足)
|
||||
|
||||
### よくあるパターン
|
||||
|
||||
**英語**:
|
||||
|
||||
```text
|
||||
feat: add user registration endpoint
|
||||
fix: resolve memory leak in cache manager
|
||||
docs: update API documentation
|
||||
```
|
||||
|
||||
**日本語**:
|
||||
|
||||
```text
|
||||
feat: ユーザー登録エンドポイントを追加
|
||||
fix: キャッシュマネージャーのメモリリークを解決
|
||||
docs: API ドキュメントを更新
|
||||
```
|
||||
|
||||
### Claude との連携
|
||||
|
||||
```bash
|
||||
# ステージングされた変更と組み合わせて使用
|
||||
git add -p # インタラクティブにステージング
|
||||
/commit-message
|
||||
「最適なコミットメッセージを生成して」
|
||||
|
||||
# 特定のファイルだけステージングして分析
|
||||
git add src/auth/*.js
|
||||
/commit-message --lang en
|
||||
「認証関連の変更に適したメッセージを生成して」
|
||||
|
||||
# Breaking Change の検出と対応
|
||||
git add -A
|
||||
/commit-message --breaking
|
||||
「破壊的変更がある場合は適切にマークして」
|
||||
```
|
||||
|
||||
### 注意事項
|
||||
|
||||
- **前提条件**: 変更は事前に `git add` でステージングされている必要があります
|
||||
- **制限事項**: ステージングされていない変更は分析対象外です
|
||||
- **推奨事項**: プロジェクトの既存コミット規約を事前に確認してください
|
||||
50
commands/context7.md
Normal file
50
commands/context7.md
Normal file
@@ -0,0 +1,50 @@
|
||||
## Context7
|
||||
|
||||
技術ドキュメントを MCP の Context7 で検索します。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
# Claude に依頼する形式
|
||||
「context7 で [検索キーワード] について検索して」
|
||||
```
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# React hooks の調査
|
||||
「context7 で React hooks について検索して」
|
||||
|
||||
# エラー解決方法の検索
|
||||
「context7 で TypeScript の型エラーについて調べて」
|
||||
```
|
||||
|
||||
### Claude との連携
|
||||
|
||||
```bash
|
||||
# 技術調査の依頼
|
||||
「context7 で Rust の所有権システムについて調べて、初心者向けに解説して」
|
||||
|
||||
# エラー解決の依頼
|
||||
「context7 で Python の ImportError の一般的な原因と解決方法を検索して」
|
||||
|
||||
# ベストプラクティスの確認
|
||||
「context7 で React のパフォーマンス最適化のベストプラクティスを探して」
|
||||
```
|
||||
|
||||
### 詳細例
|
||||
|
||||
```bash
|
||||
# 複数の観点から調査
|
||||
「context7 で GraphQL について以下の観点で調べて:
|
||||
1. 基本的な概念と REST API との違い
|
||||
2. 実装方法とベストプラクティス
|
||||
3. よくある問題と解決方法」
|
||||
|
||||
# 特定のバージョンや環境での調査
|
||||
「context7 で Next.js 14 の新機能について検索して、App Router の使い方を中心に説明して」
|
||||
```
|
||||
|
||||
### 注意事項
|
||||
|
||||
Context7 で情報が見つからない場合は、Claude が自動的に Web 検索など他の方法を提案します。
|
||||
186
commands/design-patterns.md
Normal file
186
commands/design-patterns.md
Normal file
@@ -0,0 +1,186 @@
|
||||
## Design Patterns
|
||||
|
||||
コードベースに適用可能なデザインパターンを提案し、SOLID 原則の遵守状況を評価します。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
/design-patterns [分析対象] [オプション]
|
||||
```
|
||||
|
||||
### オプション
|
||||
|
||||
- `--suggest` : 適用可能なパターンを提案 (デフォルト)
|
||||
- `--analyze` : 既存パターンの使用状況を分析
|
||||
- `--refactor` : リファクタリング案を生成
|
||||
- `--solid` : SOLID 原則の遵守状況をチェック
|
||||
- `--anti-patterns` : アンチパターンを検出
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# プロジェクト全体のパターン分析
|
||||
/design-patterns
|
||||
|
||||
# 特定ファイルへのパターン提案
|
||||
/design-patterns src/services/user.js --suggest
|
||||
|
||||
# SOLID 原則チェック
|
||||
/design-patterns --solid
|
||||
|
||||
# アンチパターン検出
|
||||
/design-patterns --anti-patterns
|
||||
```
|
||||
|
||||
### 分析カテゴリ
|
||||
|
||||
#### 1. 生成に関するパターン
|
||||
|
||||
- **Factory Pattern**: オブジェクト生成の抽象化
|
||||
- **Builder Pattern**: 複雑なオブジェクトの段階的構築
|
||||
- **Singleton Pattern**: インスタンスの一意性保証
|
||||
- **Prototype Pattern**: オブジェクトのクローン生成
|
||||
|
||||
#### 2. 構造に関するパターン
|
||||
|
||||
- **Adapter Pattern**: インターフェースの変換
|
||||
- **Decorator Pattern**: 機能の動的追加
|
||||
- **Facade Pattern**: 複雑なサブシステムの簡略化
|
||||
- **Proxy Pattern**: オブジェクトへのアクセス制御
|
||||
|
||||
#### 3. 振る舞いに関するパターン
|
||||
|
||||
- **Observer Pattern**: イベント通知の実装
|
||||
- **Strategy Pattern**: アルゴリズムの切り替え
|
||||
- **Command Pattern**: 操作のカプセル化
|
||||
- **Iterator Pattern**: コレクションの走査
|
||||
|
||||
### SOLID 原則チェック項目
|
||||
|
||||
```text
|
||||
S - Single Responsibility Principle (単一責任の原則)
|
||||
O - Open/Closed Principle (開放閉鎖の原則)
|
||||
L - Liskov Substitution Principle (リスコフの置換原則)
|
||||
I - Interface Segregation Principle (インターフェース分離の原則)
|
||||
D - Dependency Inversion Principle (依存性逆転の原則)
|
||||
```
|
||||
|
||||
### 出力例
|
||||
|
||||
```text
|
||||
デザインパターン分析レポート
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
現在使用中のパターン
|
||||
├─ Observer Pattern: EventEmitter (12 箇所)
|
||||
├─ Factory Pattern: UserFactory (3 箇所)
|
||||
├─ Singleton Pattern: DatabaseConnection (1 箇所)
|
||||
└─ Strategy Pattern: PaymentProcessor (5 箇所)
|
||||
|
||||
推奨パターン
|
||||
├─ [HIGH] Repository Pattern
|
||||
│ └─ 対象: src/models/*.js
|
||||
│ └─ 理由: データアクセスロジックの分離
|
||||
│ └─ 例:
|
||||
│ class UserRepository {
|
||||
│ async findById(id) { ... }
|
||||
│ async save(user) { ... }
|
||||
│ }
|
||||
│
|
||||
├─ [MED] Command Pattern
|
||||
│ └─ 対象: src/api/handlers/*.js
|
||||
│ └─ 理由: リクエスト処理の統一化
|
||||
│
|
||||
└─ [LOW] Decorator Pattern
|
||||
└─ 対象: src/middleware/*.js
|
||||
└─ 理由: 機能の組み合わせ改善
|
||||
|
||||
SOLID 原則違反
|
||||
├─ [S] UserService: 認証と権限管理の両方を担当
|
||||
├─ [O] PaymentGateway: 新決済手段追加時に修正必要
|
||||
├─ [D] EmailService: 具象クラスに直接依存
|
||||
└─ [I] IDataStore: 使用されないメソッドを含む
|
||||
|
||||
リファクタリング提案
|
||||
1. UserService を認証と権限管理に分割
|
||||
2. PaymentStrategy インターフェースの導入
|
||||
3. EmailService インターフェースの定義
|
||||
4. IDataStore を用途別に分離
|
||||
```
|
||||
|
||||
### 高度な使用例
|
||||
|
||||
```bash
|
||||
# パターン適用の影響分析
|
||||
/design-patterns --impact-analysis Repository
|
||||
|
||||
# 特定パターンの実装例生成
|
||||
/design-patterns --generate Factory --for src/models/Product.js
|
||||
|
||||
# パターンの組み合わせ提案
|
||||
/design-patterns --combine --context "API with caching"
|
||||
|
||||
# アーキテクチャパターンの評価
|
||||
/design-patterns --architecture MVC
|
||||
```
|
||||
|
||||
### パターン適用例
|
||||
|
||||
#### Before (問題のあるコード)
|
||||
|
||||
```javascript
|
||||
class OrderService {
|
||||
processOrder(order, paymentType) {
|
||||
if (paymentType === "credit") {
|
||||
// クレジットカード処理
|
||||
} else if (paymentType === "paypal") {
|
||||
// PayPal 処理
|
||||
}
|
||||
// 他の決済方法...
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### After (Strategy Pattern 適用)
|
||||
|
||||
```javascript
|
||||
// 戦略インターフェース
|
||||
class PaymentStrategy {
|
||||
process(amount) {
|
||||
throw new Error("Must implement process method");
|
||||
}
|
||||
}
|
||||
|
||||
// 具象戦略
|
||||
class CreditCardPayment extends PaymentStrategy {
|
||||
process(amount) {
|
||||
/* 実装 */
|
||||
}
|
||||
}
|
||||
|
||||
// コンテキスト
|
||||
class OrderService {
|
||||
constructor(paymentStrategy) {
|
||||
this.paymentStrategy = paymentStrategy;
|
||||
}
|
||||
|
||||
processOrder(order) {
|
||||
this.paymentStrategy.process(order.total);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### アンチパターン検出
|
||||
|
||||
- **God Object**: 過度に多くの責務を持つクラス
|
||||
- **Spaghetti Code**: 制御フローが複雑に絡み合ったコード
|
||||
- **Copy-Paste Programming**: 重複コードの過度な使用
|
||||
- **Magic Numbers**: ハードコードされた定数
|
||||
- **Callback Hell**: 深くネストしたコールバック
|
||||
|
||||
### ベストプラクティス
|
||||
|
||||
1. **段階的適用**: 一度に多くのパターンを適用しない
|
||||
2. **必要性の検証**: パターンは問題解決の手段であり目的ではない
|
||||
3. **チーム合意**: パターン適用前にチームで議論
|
||||
4. **ドキュメント化**: 適用したパターンの意図を記録
|
||||
75
commands/explain-code.md
Normal file
75
commands/explain-code.md
Normal file
@@ -0,0 +1,75 @@
|
||||
## Code Explain
|
||||
|
||||
コードの動作を詳しく解説します。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
# ファイル内容を表示して Claude に依頼
|
||||
cat <file>
|
||||
「このコードの動作を解説して」
|
||||
```
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# Rust の所有権を理解
|
||||
cat main.rs
|
||||
「Rust の所有権とライフタイムの観点から解説して」
|
||||
|
||||
# アルゴリズムの解説
|
||||
grep -A 50 "quicksort" sort.rs
|
||||
「このソートアルゴリズムの仕組みと計算量を解説して」
|
||||
|
||||
# デザインパターンの説明
|
||||
cat factory.rs
|
||||
「使用されているデザインパターンとその利点を説明して」
|
||||
```
|
||||
|
||||
### Claude との連携
|
||||
|
||||
```bash
|
||||
# 初心者向け解説
|
||||
cat complex_function.py
|
||||
「このコードを初心者にもわかりやすく 1 行ずつ解説して」
|
||||
|
||||
# パフォーマンス分析
|
||||
cat algorithm.rs
|
||||
「このコードのパフォーマンス上の問題点と改善案を提示して」
|
||||
|
||||
# 図解付き説明
|
||||
cat state_machine.js
|
||||
「このコードの処理の流れを ASCII アートの図解付きで説明して」
|
||||
|
||||
# セキュリティレビュー
|
||||
cat auth_handler.go
|
||||
「このコードのセキュリティ上の懸念点を指摘して」
|
||||
```
|
||||
|
||||
### 詳細例
|
||||
|
||||
```bash
|
||||
# 複雑なロジックの解説
|
||||
cat recursive_parser.rs
|
||||
「この再帰パーサーの動作を以下の観点で解説して:
|
||||
1. 全体的な処理フロー
|
||||
2. 各関数の役割と責任
|
||||
3. エッジケースの処理
|
||||
4. 改善可能な点」
|
||||
|
||||
# 非同期処理の解説
|
||||
cat async_handler.ts
|
||||
「この非同期処理について以下を解説して:
|
||||
1. Promise チェーンの流れ
|
||||
2. エラーハンドリングの仕組み
|
||||
3. 並行処理の有無
|
||||
4. デッドロックの可能性」
|
||||
|
||||
# アーキテクチャの説明
|
||||
ls -la src/ && cat src/main.rs src/lib.rs
|
||||
「このプロジェクトのアーキテクチャとモジュール構成を解説して」
|
||||
```
|
||||
|
||||
### 注意事項
|
||||
|
||||
コード解説では、単に動作を説明するだけでなく、なぜそのような実装になっているか、どのような利点があるか、潜在的な問題点は何かといった深い洞察も提供します。
|
||||
311
commands/fix-error.md
Normal file
311
commands/fix-error.md
Normal file
@@ -0,0 +1,311 @@
|
||||
## Error Fix
|
||||
|
||||
エラーメッセージから根本原因を特定し、解決時間を予測して実証済みの解決策を提案します。類似エラーのパターンを学習し、即座に適切な対処法を提示します。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
/fix-error [オプション]
|
||||
```
|
||||
|
||||
### オプション
|
||||
|
||||
- なし : 標準的なエラー分析
|
||||
- `--deep` : 深層分析モード (依存関係・環境要因を含む)
|
||||
- `--preventive` : 予防策重視の分析
|
||||
- `--quick` : 即座に適用可能な修正のみ提示
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# 標準的なエラー分析
|
||||
npm run build 2>&1
|
||||
/fix-error
|
||||
「ビルドエラーを分析して修正方法を提示して」
|
||||
|
||||
# 深層分析モード
|
||||
python app.py 2>&1
|
||||
/fix-error --deep
|
||||
「エラーの根本原因を環境要因も含めて分析して」
|
||||
|
||||
# 即座の修正重視
|
||||
cargo test 2>&1
|
||||
/fix-error --quick
|
||||
「すぐに適用できる修正方法を提示して」
|
||||
|
||||
# 予防策重視
|
||||
./app 2>&1 | tail -50
|
||||
/fix-error --preventive
|
||||
「エラーの修正と今後の予防策を提示して」
|
||||
```
|
||||
|
||||
### Claude との連携
|
||||
|
||||
```bash
|
||||
# エラーログの分析
|
||||
cat error.log
|
||||
/fix-error
|
||||
「エラーの根本原因を特定し、修正方法を提案して」
|
||||
|
||||
# テスト失敗の解決
|
||||
npm test 2>&1
|
||||
/fix-error --quick
|
||||
「失敗したテストを分析し、即座に適用できる修正案を提示して」
|
||||
|
||||
# スタックトレースの解析
|
||||
python script.py 2>&1
|
||||
/fix-error --deep
|
||||
「このスタックトレースから問題箇所を特定して環境要因も含めて分析して」
|
||||
|
||||
# 複数のエラーをまとめて解決
|
||||
grep -E "ERROR|WARN" app.log | tail -20
|
||||
/fix-error
|
||||
「これらのエラーと警告を優先度順に分類し、それぞれの解決方法を提案して」
|
||||
```
|
||||
|
||||
### エラー解決時間の予測
|
||||
|
||||
```text
|
||||
🚀 即座修正 (5 分以内)
|
||||
├─ タイポ、import 忘れ
|
||||
├─ 環境変数未設定
|
||||
├─ 未定義変数の参照
|
||||
└─ 予測時間: 2-5 分
|
||||
|
||||
⚡ クイック修正 (30 分以内)
|
||||
├─ 依存関係の不整合
|
||||
├─ 設定ファイルエラー
|
||||
├─ 型の不一致
|
||||
└─ 予測時間: 10-30 分
|
||||
|
||||
🔧 調査必要 (2 時間以内)
|
||||
├─ 複雑なロジックエラー
|
||||
├─ 非同期処理の競合
|
||||
├─ API 統合の問題
|
||||
└─ 予測時間: 30 分-2 時間
|
||||
|
||||
🔬 深層分析 (半日以上)
|
||||
├─ アーキテクチャ起因
|
||||
├─ 複数システム連携
|
||||
├─ パフォーマンス劣化
|
||||
└─ 予測時間: 4 時間-数日
|
||||
```
|
||||
|
||||
### 類似エラーパターン DB
|
||||
|
||||
```text
|
||||
頻出エラーと即座の解決策
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
📊 "Cannot read property 'X' of undefined/null" (頻出度: 極高)
|
||||
├─ 主要原因: オブジェクトの null チェック不足
|
||||
├─ 解決時間: 5-10 分
|
||||
└─ 対処法: Optional chaining (?.) または null チェック追加
|
||||
|
||||
📊 "ECONNREFUSED" / "ENOTFOUND" (頻出度: 高)
|
||||
├─ 主要原因: サービス未起動または URL 設定ミス
|
||||
├─ 解決時間: 5-15 分
|
||||
└─ 対処法: サービス起動確認、環境変数チェック
|
||||
|
||||
📊 "Module not found" / "Cannot resolve" (頻出度: 高)
|
||||
├─ 主要原因: パッケージ未インストール、パス指定ミス
|
||||
├─ 解決時間: 2-5 分
|
||||
└─ 対処法: npm install 実行、相対パス確認
|
||||
|
||||
📊 "Unexpected token" / "SyntaxError" (頻出度: 中)
|
||||
├─ 主要原因: 括弧・引用符の不一致、予約語使用
|
||||
├─ 解決時間: 2-10 分
|
||||
└─ 対処法: シンタックスハイライト確認、Linter 実行
|
||||
|
||||
📊 "CORS policy" / "Access-Control-Allow-Origin" (頻出度: 中)
|
||||
├─ 主要原因: サーバー側の CORS 設定不足
|
||||
├─ 解決時間: 15-30 分
|
||||
└─ 対処法: サーバー CORS 設定、プロキシ設定
|
||||
|
||||
📊 "Maximum call stack size exceeded" (頻出度: 低)
|
||||
├─ 主要原因: 無限ループ・再帰、循環参照
|
||||
├─ 解決時間: 30 分- 2 時間
|
||||
└─ 対処法: 再帰の終了条件確認、循環参照の解消
|
||||
```
|
||||
|
||||
### エラー分析の優先度マトリクス
|
||||
|
||||
| 優先度 | アイコン | 影響範囲 | 解決難易度 | 対応期限 | 説明 |
|
||||
| ----------------- | ----------- | -------- | ---------- | -------------- | ---------------------------------- |
|
||||
| **Critical** | 🔴 緊急対応 | 広 | 低 | 15 分以内着手 | システム全体停止、データ損失リスク |
|
||||
| **High Priority** | 🟠 早期対応 | 広 | 高 | 1 時間以内着手 | 主要機能停止、多数ユーザー影響 |
|
||||
| **Medium** | 🟡 計画対応 | 狭 | 高 | 当日中対応 | 一部機能制限、回避策あり |
|
||||
| **Low** | 🟢 経過観察 | 狭 | 低 | 次回改修時 | 軽微な不具合、UX への影響小 |
|
||||
|
||||
### 分析プロセス
|
||||
|
||||
#### Phase 1: エラー情報収集
|
||||
|
||||
```bash
|
||||
🔴 必須実行:
|
||||
- エラーメッセージの完全な取得
|
||||
- スタックトレースの確認
|
||||
- 発生条件の特定 (再現可能性)
|
||||
|
||||
🟡 早期実行:
|
||||
- 環境情報の収集 (OS、バージョン、依存関係)
|
||||
- 直前の変更履歴 (git log、最近のコミット)
|
||||
- 関連ログの確認
|
||||
|
||||
🟢 追加実行:
|
||||
- システムリソース状況
|
||||
- ネットワーク状態
|
||||
- 外部サービス状態
|
||||
```
|
||||
|
||||
#### Phase 2: 根本原因分析
|
||||
|
||||
1. **表面的症状の整理**
|
||||
- エラーメッセージの正確な内容
|
||||
- 発生タイミングとパターン
|
||||
- 影響範囲の特定
|
||||
|
||||
2. **深層原因の特定**
|
||||
- 5 Whys 分析の適用
|
||||
- 依存関係の追跡
|
||||
- 環境差異の確認
|
||||
|
||||
3. **仮説の検証**
|
||||
- 最小再現コードの作成
|
||||
- 分離テストの実行
|
||||
- 原因の絞り込み
|
||||
|
||||
#### Phase 3: 解決策の実装
|
||||
|
||||
```bash
|
||||
🔴 即座の対処 (ホットフィックス):
|
||||
- 症状を抑える最小限の修正
|
||||
- 一時的な回避策の適用
|
||||
- 緊急デプロイの準備
|
||||
|
||||
🟡 根本的解決:
|
||||
- 原因に対する本質的な修正
|
||||
- テストケースの追加
|
||||
- ドキュメントの更新
|
||||
|
||||
🟢 予防策の実装:
|
||||
- エラーハンドリングの強化
|
||||
- 監視・アラートの設定
|
||||
- CI/CD パイプラインの改善
|
||||
```
|
||||
|
||||
### 出力例
|
||||
|
||||
```text
|
||||
🚨 エラー分析レポート
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
📍 エラー概要
|
||||
├─ 種別: [コンパイル/実行時/論理/環境]
|
||||
├─ 緊急度: 🔴 高 / 🟡 中 / 🟢 低
|
||||
├─ 影響範囲: [機能名/コンポーネント]
|
||||
└─ 再現性: [100% / 断続的 / 特定条件]
|
||||
|
||||
🔍 根本原因
|
||||
├─ 直接原因: [具体的な原因]
|
||||
├─ 背景要因: [環境/設定/依存関係]
|
||||
└─ トリガー: [発生条件]
|
||||
|
||||
💡 解決策
|
||||
🔴 即座の対処:
|
||||
1. [具体的な修正コマンド/コード]
|
||||
2. [一時的な回避策]
|
||||
|
||||
🟡 根本的解決:
|
||||
1. [本質的な修正方法]
|
||||
2. [必要なリファクタリング]
|
||||
|
||||
🟢 予防策:
|
||||
1. [エラーハンドリング改善]
|
||||
2. [テスト追加]
|
||||
3. [監視設定]
|
||||
|
||||
📝 検証手順
|
||||
1. [修正適用後の確認方法]
|
||||
2. [テスト実行コマンド]
|
||||
3. [動作確認項目]
|
||||
```
|
||||
|
||||
### エラータイプ別の分析手法
|
||||
|
||||
#### コンパイル/ビルドエラー
|
||||
|
||||
```bash
|
||||
# TypeScript の型エラー
|
||||
必須確認 (高):
|
||||
- tsconfig.json の設定
|
||||
- 型定義ファイル (.d.ts) の存在
|
||||
- import 文の正確性
|
||||
|
||||
# Rust のライフタイムエラー
|
||||
必須確認 (高):
|
||||
- 所有権の移動
|
||||
- 参照の有効期間
|
||||
- ミュータビリティの競合
|
||||
```
|
||||
|
||||
#### 実行時エラー
|
||||
|
||||
```bash
|
||||
# Null/Undefined 参照
|
||||
必須確認 (高):
|
||||
- オプショナルチェイニング不足
|
||||
- 初期化タイミング
|
||||
- 非同期処理の完了待機
|
||||
|
||||
# メモリ関連エラー
|
||||
必須確認 (高):
|
||||
- ヒープダンプの取得
|
||||
- GC ログの分析
|
||||
- 循環参照の検出
|
||||
```
|
||||
|
||||
#### 依存関係エラー
|
||||
|
||||
```bash
|
||||
# バージョン競合
|
||||
必須確認 (高):
|
||||
- lock ファイルの整合性
|
||||
- peer dependencies の要件
|
||||
- 推移的依存関係
|
||||
|
||||
# モジュール解決エラー
|
||||
必須確認 (高):
|
||||
- NODE_PATH 設定
|
||||
- パスエイリアス設定
|
||||
- シンボリックリンク
|
||||
```
|
||||
|
||||
### 注意事項
|
||||
|
||||
- **絶対禁止**: エラーメッセージの一部のみでの判断、検証なしでの Stack Overflow 解決策の適用
|
||||
- **例外条件**: 一時的な回避策は以下の 3 つの条件のみ許可
|
||||
1. 本番環境の緊急対応 (24 時間以内に根本解決必須)
|
||||
2. 外部サービス障害 (復旧待ちの間の代替手段)
|
||||
3. 既知のフレームワークバグ (修正版リリース待ち)
|
||||
- **推奨事項**: 根本原因の特定を最優先し、表面的な修正を避ける
|
||||
|
||||
### ベストプラクティス
|
||||
|
||||
1. **完全な情報収集**: エラーメッセージの最初から最後まで確認
|
||||
2. **再現性の確認**: 最小再現コードの作成を最優先
|
||||
3. **段階的アプローチ**: 小さな修正から始めて検証
|
||||
4. **ドキュメント化**: 解決過程を記録して知識共有
|
||||
|
||||
#### よくある落とし穴
|
||||
|
||||
- **症状への対処**: 根本原因を見逃す表面的な修正
|
||||
- **過度な一般化**: 特定ケースの解決策を広範に適用
|
||||
- **検証の省略**: 修正後の副作用を確認しない
|
||||
- **知識の属人化**: 解決方法を文書化しない
|
||||
|
||||
### 関連コマンド
|
||||
|
||||
- `/design-patterns` : コード構造の問題を分析してパターン提案
|
||||
- `/tech-debt` : 技術的負債の観点からエラーの根本原因を分析
|
||||
- `/analyzer` : より深い根本原因分析が必要な場合
|
||||
314
commands/multi-role.md
Normal file
314
commands/multi-role.md
Normal file
@@ -0,0 +1,314 @@
|
||||
## Multi Role
|
||||
|
||||
複数のロールで同じ対象を並行分析し、統合レポートを生成するコマンド。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
/multi-role <ロール 1>,<ロール 2> [--agent|-a] [分析対象]
|
||||
/multi-role <ロール 1>,<ロール 2>,<ロール 3> [--agent|-a] [分析対象]
|
||||
```
|
||||
|
||||
### 利用可能なロール
|
||||
|
||||
#### 専門分析ロール
|
||||
|
||||
- `security` : セキュリティ監査専門家
|
||||
- `performance` : パフォーマンス最適化専門家
|
||||
- `analyzer` : 根本原因分析専門家
|
||||
- `frontend` : フロントエンド・UI/UX 専門家
|
||||
- `mobile` : モバイル開発専門家
|
||||
- `backend` : バックエンド開発専門家
|
||||
|
||||
#### 開発支援ロール
|
||||
|
||||
- `reviewer` : コードレビュー専門家
|
||||
- `architect` : システムアーキテクト
|
||||
- `qa` : テストエンジニア
|
||||
|
||||
### オプション
|
||||
|
||||
- `--agent` または `-a` : 各ロールをサブエージェントとして並列実行 (大規模分析時推奨)
|
||||
- このオプションを使用すると、各ロールの description に自動委任促進フレーズ ("use PROACTIVELY" など) が含まれている場合、より積極的な自動委任が有効になります
|
||||
|
||||
**重要**:
|
||||
|
||||
- `--agent` オプションはロール指定の直後に配置してください
|
||||
- メッセージは `--agent` の後に記述してください
|
||||
- 正しい例: `/multi-role qa,architect --agent 計画を評価して`
|
||||
- 間違った例: `/multi-role qa,architect 計画を評価して --agent`
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# セキュリティとパフォーマンスの両面分析 (通常)
|
||||
/multi-role security,performance
|
||||
「この API エンドポイントを評価して」
|
||||
|
||||
# 大規模システムの並列分析 (サブエージェント)
|
||||
/multi-role security,performance --agent
|
||||
「システム全体のセキュリティとパフォーマンスを包括的に分析」
|
||||
|
||||
# フロントエンド・モバイル・パフォーマンスの統合分析
|
||||
/multi-role frontend,mobile,performance
|
||||
「この画面の最適化案を検討して」
|
||||
|
||||
# アーキテクチャ設計の多角的評価 (サブエージェント)
|
||||
/multi-role architect,security,performance --agent
|
||||
「マイクロサービス化の設計を評価して」
|
||||
```
|
||||
|
||||
### 分析プロセス
|
||||
|
||||
### Phase 1: 並行分析
|
||||
|
||||
各ロールが独立して同じ対象を分析
|
||||
|
||||
- 専門視点からの評価実行
|
||||
- ロール固有の基準で判定
|
||||
- 独立した推奨事項の生成
|
||||
|
||||
### Phase 2: 統合分析
|
||||
|
||||
結果を構造化して統合
|
||||
|
||||
- 各ロールの評価結果整理
|
||||
- 重複・矛盾点の特定
|
||||
- 補完関係の明確化
|
||||
|
||||
### Phase 3: 統合レポート
|
||||
|
||||
最終的な推奨事項の生成
|
||||
|
||||
- 優先度付きアクションプラン
|
||||
- トレードオフの明示
|
||||
- 実装ロードマップ提示
|
||||
|
||||
### 出力フォーマット例
|
||||
|
||||
### 2 ロール分析の場合
|
||||
|
||||
```text
|
||||
マルチロール分析: Security + Performance
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
分析対象: API エンドポイント /api/users
|
||||
|
||||
Security 分析結果:
|
||||
認証: JWT 検証が適切に実装
|
||||
認可: ロールベースアクセス制御が不完全
|
||||
暗号化: API キーが平文でログ出力
|
||||
|
||||
評価スコア: 65/100
|
||||
重要度: High(機密データアクセスのため)
|
||||
|
||||
Performance 分析結果:
|
||||
レスポンス時間: 平均 180ms(目標 200ms 以内)
|
||||
データベースクエリ: N+1 問題を検出
|
||||
キャッシュ: Redis キャッシュ未実装
|
||||
|
||||
評価スコア: 70/100
|
||||
重要度: Medium(現状は許容範囲内)
|
||||
|
||||
相互関連分析:
|
||||
相乗効果の機会:
|
||||
- Redis キャッシュ実装時に暗号化も同時考慮
|
||||
- ログ出力の改善でセキュリティ+パフォーマンス向上
|
||||
|
||||
トレードオフポイント:
|
||||
- 認可チェック強化 ↔ レスポンス時間への影響
|
||||
- ログ暗号化 ↔ デバッグ効率の低下
|
||||
|
||||
統合優先度:
|
||||
Critical: API キー平文出力の修正
|
||||
High: N+1 クエリの解決
|
||||
Medium: Redis キャッシュ + 暗号化の実装
|
||||
Low: 認可制御の詳細化
|
||||
|
||||
実装ロードマップ:
|
||||
週 1: API キーのマスキング実装
|
||||
週 2: データベースクエリ最適化
|
||||
週 3-4: キャッシュレイヤーの設計・実装
|
||||
月 2: 認可制御の段階的強化
|
||||
```
|
||||
|
||||
### 3 ロール分析の場合
|
||||
|
||||
```text
|
||||
マルチロール分析: Frontend + Mobile + Performance
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
分析対象: ユーザープロフィール画面
|
||||
|
||||
Frontend 分析結果:
|
||||
ユーザビリティ: 直感的なレイアウト
|
||||
アクセシビリティ: WCAG 2.1 準拠率 85%
|
||||
レスポンシブ: タブレット表示に課題
|
||||
|
||||
Mobile 分析結果:
|
||||
タッチターゲット: 44pt 以上確保
|
||||
片手操作: 重要ボタンが上部に配置
|
||||
オフライン対応: 未実装
|
||||
|
||||
Performance 分析結果:
|
||||
初期表示: LCP 2.1 秒 (良好)
|
||||
画像最適化: WebP 未対応
|
||||
遅延読み込み: 未実装
|
||||
|
||||
統合推奨事項:
|
||||
1. モバイル最適化 (片手操作 + オフライン対応)
|
||||
2. 画像最適化 (WebP + 遅延読み込み)
|
||||
3. タブレット UI の改善
|
||||
|
||||
優先度: Mobile > Performance > Frontend
|
||||
実装期間: 3-4 週間
|
||||
```
|
||||
|
||||
### 効果的な組み合わせパターン
|
||||
|
||||
### セキュリティ重視
|
||||
|
||||
```bash
|
||||
/multi-role security,architect
|
||||
「認証システムの設計」
|
||||
|
||||
/multi-role security,frontend
|
||||
「ログイン画面のセキュリティ」
|
||||
|
||||
/multi-role security,mobile
|
||||
「モバイルアプリのデータ保護」
|
||||
```
|
||||
|
||||
### パフォーマンス重視
|
||||
|
||||
```bash
|
||||
/multi-role performance,architect
|
||||
「スケーラビリティ設計」
|
||||
|
||||
/multi-role performance,frontend
|
||||
「Web ページの高速化」
|
||||
|
||||
/multi-role performance,mobile
|
||||
「アプリの動作最適化」
|
||||
```
|
||||
|
||||
### ユーザー体験重視
|
||||
|
||||
```bash
|
||||
/multi-role frontend,mobile
|
||||
「クロスプラットフォーム UI」
|
||||
|
||||
/multi-role frontend,performance
|
||||
「UX とパフォーマンスのバランス」
|
||||
|
||||
/multi-role mobile,performance
|
||||
「モバイル UX の最適化」
|
||||
```
|
||||
|
||||
### 包括的分析
|
||||
|
||||
```bash
|
||||
/multi-role architect,security,performance
|
||||
「システム全体の評価」
|
||||
|
||||
/multi-role frontend,mobile,performance
|
||||
「ユーザー体験の総合評価」
|
||||
|
||||
/multi-role security,performance,mobile
|
||||
「モバイルアプリの総合診断」
|
||||
```
|
||||
|
||||
### Claude との連携
|
||||
|
||||
```bash
|
||||
# ファイル分析と組み合わせ
|
||||
cat src/components/UserProfile.tsx
|
||||
/multi-role frontend,mobile
|
||||
「このコンポーネントを複数の視点で評価して」
|
||||
|
||||
# 設計ドキュメントの評価
|
||||
cat architecture-design.md
|
||||
/multi-role architect,security,performance
|
||||
「この設計を複数の専門分野で評価して」
|
||||
|
||||
# エラー分析
|
||||
cat performance-issues.log
|
||||
/multi-role performance,analyzer
|
||||
「パフォーマンス問題を多角的に分析して」
|
||||
```
|
||||
|
||||
### multi-role vs role-debate の使い分け
|
||||
|
||||
### multi-role を使う場面
|
||||
|
||||
- 各専門分野の独立した評価が欲しい
|
||||
- 統合的な改善計画を立てたい
|
||||
- 矛盾や重複を整理したい
|
||||
- 実装優先度を決めたい
|
||||
|
||||
### role-debate を使う場面
|
||||
|
||||
- 専門分野間でトレードオフがある
|
||||
- 技術選定で意見が分かれそう
|
||||
- 設計方針を議論で決めたい
|
||||
- 異なる視点での議論を聞きたい
|
||||
|
||||
### サブエージェント並列実行 (--agent)
|
||||
|
||||
`--agent` オプションを使用すると、各ロールが独立したサブエージェントとして並列実行されます。
|
||||
|
||||
#### 自動委任の促進
|
||||
|
||||
ロールファイルの description フィールドに以下のようなフレーズが含まれている場合、`--agent` 使用時により積極的な自動委任が有効化されます:
|
||||
|
||||
- "use PROACTIVELY"
|
||||
- "MUST BE USED"
|
||||
- その他の強調表現
|
||||
|
||||
#### 実行フロー
|
||||
|
||||
```text
|
||||
通常実行:
|
||||
ロール 1 → ロール 2 → ロール 3 → 統合
|
||||
(順次実行、約 3-5 分)
|
||||
|
||||
--agent 実行:
|
||||
ロール 1 ─┐
|
||||
ロール 2 ─┼→ 統合
|
||||
ロール 3 ─┘
|
||||
(並列実行、約 1-2 分)
|
||||
```
|
||||
|
||||
#### 効果的な使用例
|
||||
|
||||
```bash
|
||||
# 大規模システムの総合評価
|
||||
/multi-role architect,security,performance,qa --agent
|
||||
「新システムの包括的評価」
|
||||
|
||||
# 複数観点での詳細分析
|
||||
/multi-role frontend,mobile,performance --agent
|
||||
「全画面の UX 最適化分析」
|
||||
```
|
||||
|
||||
#### パフォーマンス比較
|
||||
|
||||
| ロール数 | 通常実行 | --agent 実行 | 短縮率 |
|
||||
| -------- | -------- | ------------ | ------ |
|
||||
| 2 ロール | 2-3 分 | 1 分 | 50% |
|
||||
| 3 ロール | 3-5 分 | 1-2 分 | 60% |
|
||||
| 4 ロール | 5-8 分 | 2-3 分 | 65% |
|
||||
|
||||
### 注意事項
|
||||
|
||||
- 3 つ以上のロールを同時実行すると出力が長くなります
|
||||
- 複雑な分析ほど実行時間が長くなる可能性があります
|
||||
- 相互矛盾する推奨事項が出た場合は、role-debate も検討してください
|
||||
- 最終的な判断は統合結果を参考にユーザーが行ってください
|
||||
- **--agent 使用時**: より多くのリソースを使用しますが、大規模分析では効率的です
|
||||
|
||||
### ロール設定の詳細
|
||||
|
||||
- 各ロールの詳細設定・專門知識・議論特性は `.claude/agents/roles/` ディレクトリ内で定義
|
||||
- Evidence-First 手法・認知バイアス対策も含む
|
||||
- ロール固有のトリガーフレーズで自動的に特化モードが有効化
|
||||
134
commands/plan.md
Normal file
134
commands/plan.md
Normal file
@@ -0,0 +1,134 @@
|
||||
## Plan
|
||||
|
||||
実装前の計画立案モードを起動して、詳細な実装戦略を策定します。コード実装前に構造化された計画を立てることで、効率的な開発を支援します。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
# Claude に Plan Mode を依頼
|
||||
「[実装内容] の実装計画を立てて」
|
||||
```
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# 新機能の実装計画
|
||||
「ユーザー認証機能の実装計画を立てて」
|
||||
|
||||
# システム設計の計画
|
||||
「マイクロサービス分割の実装計画を立てて」
|
||||
|
||||
# リファクタリング計画
|
||||
「レガシーコードのリファクタリング計画を立てて」
|
||||
```
|
||||
|
||||
### Claude との連携
|
||||
|
||||
```bash
|
||||
# 複雑な機能実装
|
||||
「チャット機能の実装計画を立てて。WebSocket、リアルタイム通知、履歴管理を含めて」
|
||||
|
||||
# データベース設計
|
||||
「EC サイトのデータベース設計計画を立てて。商品、注文、ユーザー管理を含めて」
|
||||
|
||||
# API 設計
|
||||
「GraphQL API の実装計画を立てて。認証、キャッシュ、レート制限を含めて」
|
||||
|
||||
# インフラ設計
|
||||
「Docker 化の実装計画を立てて。開発環境、本番環境、CI/CD を含めて」
|
||||
```
|
||||
|
||||
### Plan Mode の特徴
|
||||
|
||||
**自動起動**
|
||||
|
||||
- 実装タスクを検出すると自動的に Plan Mode が起動
|
||||
- 「実装計画を立てて」などのキーワードで明示的に起動可能
|
||||
|
||||
**構造化された仕様書**
|
||||
|
||||
- 要件定義 (ユーザーストーリー・受け入れ基準)
|
||||
- 設計書 (アーキテクチャ・データ設計・UI 設計)
|
||||
- 実装計画 (タスク分解・進捗追跡・品質保証)
|
||||
- リスク分析と対策
|
||||
|
||||
**承認プロセス**
|
||||
|
||||
- `exit_plan_mode` ツールで計画を提示
|
||||
- **重要**: ツールの戻り値に関わらず、必ずユーザーの明示的承認を待つ
|
||||
- 承認なしでの実装開始は禁止
|
||||
- 計画の修正・調整が可能
|
||||
- 承認後にのみ TodoWrite でタスク管理を開始
|
||||
|
||||
### 詳細例
|
||||
|
||||
```bash
|
||||
# 複雑なシステム実装
|
||||
「オンライン決済システムの実装計画を立てて。Stripe 連携、セキュリティ、エラーハンドリングを含めて」
|
||||
|
||||
# フロントエンド実装
|
||||
「React ダッシュボードの実装計画を立てて。状態管理、コンポーネント設計、テストを含めて」
|
||||
|
||||
# バックエンド実装
|
||||
「RESTful API の実装計画を立てて。認証、バリデーション、ログ記録を含めて」
|
||||
|
||||
# DevOps 実装
|
||||
「CI/CD パイプラインの実装計画を立てて。テスト自動化、デプロイメント、監視を含めて」
|
||||
```
|
||||
|
||||
### 3 段階ワークフロー
|
||||
|
||||
#### Phase 1: Requirements(要件定義)
|
||||
|
||||
- **ユーザーストーリー**: 機能の目的と価値を明確化
|
||||
- **受け入れ基準**: 完了条件と品質基準を定義
|
||||
- **制約・前提条件**: 技術的・時間的制約を整理
|
||||
- **優先順位付け**: Must-have/Nice-to-have の分類
|
||||
|
||||
#### Phase 2: Design(設計)
|
||||
|
||||
- **アーキテクチャ設計**: システム構成と技術選定
|
||||
- **データ設計**: スキーマ、API 仕様、データフロー
|
||||
- **UI/UX 設計**: 画面構成と操作フロー
|
||||
- **リスク分析**: 潜在的問題と対策
|
||||
|
||||
#### Phase 3: Implementation(実装)
|
||||
|
||||
- **タスク分解**: 実装可能な単位への細分化
|
||||
- **進捗追跡**: TodoWrite による状態管理
|
||||
- **品質保証**: テスト戦略と検証方法
|
||||
- **承認プロセス**: exit_plan_mode での計画提示と明示的承認待機
|
||||
|
||||
### 注意事項
|
||||
|
||||
**適用範囲**
|
||||
|
||||
- Plan Mode は複雑な実装タスクに最適
|
||||
- 単純な修正や小規模な変更の場合は、通常の実装形式を使用
|
||||
- 3 ステップ以上の作業や新規機能開発に推奨
|
||||
|
||||
**技術的制約**
|
||||
|
||||
- `exit_plan_mode` ツールの戻り値は信頼しない
|
||||
- 承認プロセスはユーザーの明示的な意思表示で判断
|
||||
- CLI の plan mode とは異なる機能
|
||||
|
||||
**実行上の注意**
|
||||
|
||||
- 承認前の実装開始は厳禁
|
||||
- 計画提示後は必ずユーザー応答を待機
|
||||
- エラー時は代替手段を提示
|
||||
|
||||
### 実行例
|
||||
|
||||
```bash
|
||||
# 使用例
|
||||
「ユーザー管理システムの実装計画を立てて」
|
||||
|
||||
# 期待される動作
|
||||
# 1. Plan Mode が自動起動
|
||||
# 2. 要件分析と技術選定
|
||||
# 3. 実装ステップの構造化
|
||||
# 4. exit_plan_mode で計画提示
|
||||
# 5. 承認後に実装開始
|
||||
```
|
||||
460
commands/pr-auto-update.md
Normal file
460
commands/pr-auto-update.md
Normal file
@@ -0,0 +1,460 @@
|
||||
## PR Auto Update
|
||||
|
||||
## 概要
|
||||
|
||||
Pull Request の説明とラベルを自動的に更新するコマンドです。Git の変更内容を分析して、適切な説明文とラベルを生成・設定します。
|
||||
|
||||
## 使い方
|
||||
|
||||
```bash
|
||||
/pr-auto-update [オプション] [PR 番号]
|
||||
```
|
||||
|
||||
### オプション
|
||||
|
||||
- `--pr <番号>` : 対象の PR 番号を指定 (省略時は現在のブランチから自動検出)
|
||||
- `--description-only` : 説明文のみ更新 (ラベルは変更しない)
|
||||
- `--labels-only` : ラベルのみ更新 (説明文は変更しない)
|
||||
- `--dry-run` : 実際の更新は行わず、生成される内容のみ表示
|
||||
- `--lang <言語>` : 言語を指定 (ja, en)
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# 現在のブランチの PR を自動更新
|
||||
/pr-auto-update
|
||||
|
||||
# 特定の PR を更新
|
||||
/pr-auto-update --pr 1234
|
||||
|
||||
# 説明文のみ更新
|
||||
/pr-auto-update --description-only
|
||||
|
||||
# ドライランで確認
|
||||
/pr-auto-update --dry-run
|
||||
```
|
||||
|
||||
## 機能詳細
|
||||
|
||||
### 1. PR の自動検出
|
||||
|
||||
現在のブランチから対応する PR を自動検出:
|
||||
|
||||
```bash
|
||||
# ブランチから PR を検索
|
||||
gh pr list --head $(git branch --show-current) --json number,title,url
|
||||
```
|
||||
|
||||
### 2. 変更内容の分析
|
||||
|
||||
以下の情報を収集・分析:
|
||||
|
||||
- **ファイル変更**: 追加・削除・変更されたファイル
|
||||
- **コード分析**: import 文、関数定義、クラス定義の変更
|
||||
- **テスト**: テストファイルの有無と内容
|
||||
- **ドキュメント**: README、docs の更新
|
||||
- **設定**: package.json、pubspec.yaml、設定ファイルの変更
|
||||
- **CI/CD**: GitHub Actions、workflow の変更
|
||||
|
||||
### 3. 説明文の自動生成
|
||||
|
||||
#### テンプレート処理の優先順位
|
||||
|
||||
1. **既存の PR 説明**: 既に記述されている内容を**完全に踏襲**
|
||||
2. **プロジェクトテンプレート**: `.github/PULL_REQUEST_TEMPLATE.md` から構造を取得
|
||||
3. **デフォルトテンプレート**: 上記が存在しない場合のフォールバック
|
||||
|
||||
#### 既存内容の保持ルール
|
||||
|
||||
**重要**: 既存の内容は変更しない
|
||||
|
||||
- 書かれているセクションは保持
|
||||
- 空のセクションのみ補完
|
||||
- 機能的なコメント (Copilot review rule など) は保持
|
||||
|
||||
#### プロジェクトテンプレートの使用
|
||||
|
||||
```bash
|
||||
# .github/PULL_REQUEST_TEMPLATE.md の構造を解析
|
||||
parse_template_structure() {
|
||||
local template_file="$1"
|
||||
|
||||
if [ -f "$template_file" ]; then
|
||||
# セクション構造を抽出
|
||||
grep -E '^##|^###' "$template_file"
|
||||
|
||||
# コメントプレースホルダーを特定
|
||||
grep -E '<!--.*-->' "$template_file"
|
||||
|
||||
# 既存のテンプレート構造を完全に踏襲
|
||||
cat "$template_file"
|
||||
fi
|
||||
}
|
||||
```
|
||||
|
||||
### 4. ラベルの自動設定
|
||||
|
||||
#### ラベル取得の仕組み
|
||||
|
||||
**優先順位**:
|
||||
|
||||
1. **`.github/labels.yml`**: プロジェクト固有のラベル定義から取得
|
||||
2. **GitHub API**: `gh api repos/{OWNER}/{REPO}/labels --jq '.[].name'` で既存ラベルを取得
|
||||
|
||||
#### 自動判定ルール
|
||||
|
||||
**ファイルパターンベース**:
|
||||
|
||||
- ドキュメント: `*.md`, `README`, `docs/` → `documentation|docs|doc` を含むラベル
|
||||
- テスト: `test`, `spec` → `test|testing` を含むラベル
|
||||
- CI/CD: `.github/`, `*.yml`, `Dockerfile` → `ci|build|infra|ops` を含むラベル
|
||||
- 依存関係: `package.json`, `pubspec.yaml`, `requirements.txt` → `dependencies|deps` を含むラベル
|
||||
|
||||
**変更内容ベース**:
|
||||
|
||||
- バグ修正: `fix|bug|error|crash|修正` → `bug|fix` を含むラベル
|
||||
- 新機能: `feat|feature|add|implement|新機能|実装` → `feature|enhancement|feat` を含むラベル
|
||||
- リファクタリング: `refactor|clean|リファクタ` → `refactor|cleanup|clean` を含むラベル
|
||||
- パフォーマンス: `performance|perf|optimize|パフォーマンス` → `performance|perf` を含むラベル
|
||||
- セキュリティ: `security|secure|セキュリティ` → `security` を含むラベル
|
||||
|
||||
#### 制約
|
||||
|
||||
- **最大 3 個まで**: 自動選択されるラベル数の上限
|
||||
- **既存ラベルのみ**: 新しいラベルの作成は禁止
|
||||
- **部分マッチ**: ラベル名にキーワードが含まれているかで判定
|
||||
|
||||
#### 実際の使用例
|
||||
|
||||
**`.github/labels.yml` が存在する場合**:
|
||||
|
||||
```bash
|
||||
# ラベル定義から自動取得
|
||||
grep "^- name:" .github/labels.yml | sed "s/^- name: '\?\([^']*\)'\?/\1/"
|
||||
|
||||
# 例: プロジェクト固有のラベル体系を使用
|
||||
```
|
||||
|
||||
**GitHub API から取得する場合**:
|
||||
|
||||
```bash
|
||||
# 既存ラベルの一覧取得
|
||||
gh api repos/{OWNER}/{REPO}/labels --jq '.[].name'
|
||||
|
||||
# 例: bug, enhancement, documentation などの標準的なラベルを使用
|
||||
```
|
||||
|
||||
### 5. 実行フロー
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
|
||||
# 1. PR の検出・取得
|
||||
detect_pr() {
|
||||
if [ -n "$PR_NUMBER" ]; then
|
||||
echo $PR_NUMBER
|
||||
else
|
||||
gh pr list --head $(git branch --show-current) --json number --jq '.[0].number'
|
||||
fi
|
||||
}
|
||||
|
||||
# 2. 変更内容の分析
|
||||
analyze_changes() {
|
||||
local pr_number=$1
|
||||
|
||||
# ファイル変更の取得
|
||||
gh pr diff $pr_number --name-only
|
||||
|
||||
# 内容分析
|
||||
gh pr diff $pr_number | head -1000
|
||||
}
|
||||
|
||||
# 3. 説明文の生成
|
||||
generate_description() {
|
||||
local pr_number=$1
|
||||
local changes=$2
|
||||
|
||||
# 現在の PR 説明を取得
|
||||
local current_body=$(gh pr view $pr_number --json body --jq -r .body)
|
||||
|
||||
# 既存内容があればそのまま使用
|
||||
if [ -n "$current_body" ]; then
|
||||
echo "$current_body"
|
||||
else
|
||||
# テンプレートから新規生成
|
||||
local template_file=".github/PULL_REQUEST_TEMPLATE.md"
|
||||
if [ -f "$template_file" ]; then
|
||||
generate_from_template "$(cat "$template_file")" "$changes"
|
||||
else
|
||||
generate_from_template "" "$changes"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# テンプレートからの生成
|
||||
generate_from_template() {
|
||||
local template="$1"
|
||||
local changes="$2"
|
||||
|
||||
if [ -n "$template" ]; then
|
||||
# テンプレートをそのまま使用 (HTML コメント保持)
|
||||
echo "$template"
|
||||
else
|
||||
# デフォルトフォーマットで生成
|
||||
echo "## What does this change?"
|
||||
echo ""
|
||||
echo "$changes"
|
||||
fi
|
||||
}
|
||||
|
||||
# 4. ラベルの決定
|
||||
determine_labels() {
|
||||
local changes=$1
|
||||
local file_list=$2
|
||||
local pr_number=$3
|
||||
|
||||
# 利用可能なラベルを取得
|
||||
local available_labels=()
|
||||
if [ -f ".github/labels.yml" ]; then
|
||||
# labels.yml からラベル名を抽出
|
||||
available_labels=($(grep "^- name:" .github/labels.yml | sed "s/^- name: '\?\([^']*\)'\?/\1/"))
|
||||
else
|
||||
# GitHub API からラベルを取得
|
||||
local repo_info=$(gh repo view --json owner,name)
|
||||
local owner=$(echo "$repo_info" | jq -r .owner.login)
|
||||
local repo=$(echo "$repo_info" | jq -r .name)
|
||||
available_labels=($(gh api "repos/$owner/$repo/labels" --jq '.[].name'))
|
||||
fi
|
||||
|
||||
local suggested_labels=()
|
||||
|
||||
# 汎用的なパターンマッチング
|
||||
analyze_change_patterns "$file_list" "$changes" available_labels suggested_labels
|
||||
|
||||
# 最大 3 個に制限
|
||||
echo "${suggested_labels[@]:0:3}"
|
||||
}
|
||||
|
||||
# 変更パターンからラベルを決定
|
||||
analyze_change_patterns() {
|
||||
local file_list="$1"
|
||||
local changes="$2"
|
||||
local -n available_ref=$3
|
||||
local -n suggested_ref=$4
|
||||
|
||||
# ファイルタイプによる判定
|
||||
if echo "$file_list" | grep -q "\.md$\|README\|docs/"; then
|
||||
add_matching_label "documentation\|docs\|doc" available_ref suggested_ref
|
||||
fi
|
||||
|
||||
if echo "$file_list" | grep -q "test\|spec"; then
|
||||
add_matching_label "test\|testing" available_ref suggested_ref
|
||||
fi
|
||||
|
||||
# 変更内容による判定
|
||||
if echo "$changes" | grep -iq "fix\|bug\|error\|crash\|修正"; then
|
||||
add_matching_label "bug\|fix" available_ref suggested_ref
|
||||
fi
|
||||
|
||||
if echo "$changes" | grep -iq "feat\|feature\|add\|implement\|新機能\|実装"; then
|
||||
add_matching_label "feature\|enhancement\|feat" available_ref suggested_ref
|
||||
fi
|
||||
}
|
||||
|
||||
# マッチするラベルを追加
|
||||
add_matching_label() {
|
||||
local pattern="$1"
|
||||
local -n available_ref=$2
|
||||
local -n suggested_ref=$3
|
||||
|
||||
# すでに 3 個ある場合はスキップ
|
||||
if [ ${#suggested_ref[@]} -ge 3 ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
# パターンにマッチする最初のラベルを追加
|
||||
for available_label in "${available_ref[@]}"; do
|
||||
if echo "$available_label" | grep -iq "$pattern"; then
|
||||
# 重複チェック
|
||||
local already_exists=false
|
||||
for existing in "${suggested_ref[@]}"; do
|
||||
if [ "$existing" = "$available_label" ]; then
|
||||
already_exists=true
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$already_exists" = false ]; then
|
||||
suggested_ref+=("$available_label")
|
||||
return
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# 旧関数の互換性のため残しておく
|
||||
find_and_add_label() {
|
||||
add_matching_label "$@"
|
||||
}
|
||||
|
||||
# 5. PR の更新
|
||||
update_pr() {
|
||||
local pr_number=$1
|
||||
local description="$2"
|
||||
local labels="$3"
|
||||
|
||||
if [ "$DRY_RUN" = "true" ]; then
|
||||
echo "=== DRY RUN ==="
|
||||
echo "Description:"
|
||||
echo "$description"
|
||||
echo "Labels: $labels"
|
||||
else
|
||||
# リポジトリ情報を取得
|
||||
local repo_info=$(gh repo view --json owner,name)
|
||||
local owner=$(echo "$repo_info" | jq -r .owner.login)
|
||||
local repo=$(echo "$repo_info" | jq -r .name)
|
||||
|
||||
# GitHub API を使用して本文を更新 (HTML コメント保持)
|
||||
# JSON エスケープを適切に処理
|
||||
local escaped_body=$(echo "$description" | jq -R -s .)
|
||||
gh api \
|
||||
--method PATCH \
|
||||
"/repos/$owner/$repo/pulls/$pr_number" \
|
||||
--field body="$description"
|
||||
|
||||
# ラベルは通常の gh コマンドで問題なし
|
||||
if [ -n "$labels" ]; then
|
||||
gh pr edit $pr_number --add-label "$labels"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
```
|
||||
|
||||
## 設定ファイル (今後の拡張用)
|
||||
|
||||
`~/.claude/pr-auto-update.config`:
|
||||
|
||||
```json
|
||||
{
|
||||
"language": "ja",
|
||||
"max_labels": 3
|
||||
}
|
||||
```
|
||||
|
||||
## よくあるパターン
|
||||
|
||||
### Flutter プロジェクト
|
||||
|
||||
```markdown
|
||||
## What does this change?
|
||||
|
||||
{機能名}を実装しました。ユーザーの{課題}を解決します。
|
||||
|
||||
### 主な変更内容
|
||||
|
||||
- **UI 実装**: {画面名}を新規作成
|
||||
- **状態管理**: 状態管理ライブラリを使用してステート管理を追加
|
||||
- **API 統合**: GraphQL クエリ・ミューテーションを実装
|
||||
- **テスト**: ウィジェットテスト・ユニットテストを追加
|
||||
|
||||
### 技術仕様
|
||||
|
||||
- **アーキテクチャ**: {使用パターン}
|
||||
- **依存関係**: {新規追加したパッケージ}
|
||||
- **パフォーマンス**: {最適化内容}
|
||||
```
|
||||
|
||||
### Node.js プロジェクト
|
||||
|
||||
```markdown
|
||||
## What does this change?
|
||||
|
||||
{API 名}エンドポイントを実装しました。{ユースケース}に対応します。
|
||||
|
||||
### 主な変更内容
|
||||
|
||||
- **API 実装**: {エンドポイント}を新規作成
|
||||
- **バリデーション**: リクエスト検証ロジックを追加
|
||||
- **データベース**: {テーブル名}への操作を実装
|
||||
- **テスト**: 統合テスト・ユニットテストを追加
|
||||
|
||||
### セキュリティ
|
||||
|
||||
- **認証**: JWT トークン検証
|
||||
- **認可**: ロールベースアクセス制御
|
||||
- **入力検証**: SQL インジェクション対策
|
||||
```
|
||||
|
||||
### CI/CD 改善
|
||||
|
||||
```markdown
|
||||
## What does this change?
|
||||
|
||||
GitHub Actions ワークフローを改善しました。{効果}を実現します。
|
||||
|
||||
### 改善内容
|
||||
|
||||
- **パフォーマンス**: ビルド時間を{時間}短縮
|
||||
- **信頼性**: エラーハンドリングを強化
|
||||
- **セキュリティ**: シークレット管理を改善
|
||||
|
||||
### 技術詳細
|
||||
|
||||
- **並列化**: {ジョブ名}を並列実行
|
||||
- **キャッシュ**: {キャッシュ対象}のキャッシュ戦略を最適化
|
||||
- **モニタリング**: {メトリクス}の監視を追加
|
||||
```
|
||||
|
||||
## 注意事項
|
||||
|
||||
1. **既存内容の完全保持**:
|
||||
- 既に記述されている内容は**一文字も変更しない**
|
||||
- 空のコメント部分とプレースホルダーのみ補完
|
||||
- ユーザーが意図的に書いた内容を尊重
|
||||
|
||||
2. **テンプレート優先順位**:
|
||||
- 既存の PR 説明 > `.github/PULL_REQUEST_TEMPLATE.md` > デフォルト
|
||||
- プロジェクト固有のテンプレート構造を完全踏襲
|
||||
|
||||
3. **ラベル制約**:
|
||||
- `.github/labels.yml` が存在すれば優先使用
|
||||
- 存在しない場合は GitHub API から既存ラベルを取得
|
||||
- 新しいラベルの作成は禁止
|
||||
- 最大 3 個まで自動選択
|
||||
|
||||
4. **安全な更新**:
|
||||
- `--dry-run` で事前確認を推奨
|
||||
- 機密情報を含む変更の場合は警告表示
|
||||
- バックアップとして元の説明を保存
|
||||
|
||||
5. **一貫性の維持**:
|
||||
- プロジェクトの既存 PR スタイルに合わせる
|
||||
- 言語 (日本語/英語) の統一
|
||||
- ラベリング規則の継承
|
||||
|
||||
## トラブルシューティング
|
||||
|
||||
### よくある問題
|
||||
|
||||
1. **PR が見つからない**: ブランチ名と PR の関連付けを確認
|
||||
2. **権限エラー**: GitHub CLI の認証状態を確認
|
||||
3. **ラベルが設定できない**: リポジトリの権限を確認
|
||||
4. **HTML コメントがエスケープされる**: GitHub CLI の仕様により `<!-- -->` が `<!-- -->` に変換される
|
||||
|
||||
### GitHub CLI の HTML コメントエスケープ問題
|
||||
|
||||
**重要**: GitHub CLI(`gh pr edit`) は HTML コメントを自動エスケープします。また、シェルのリダイレクト処理で `EOF < /dev/null` などの不正な文字列が混入する場合があります。
|
||||
|
||||
#### 根本的解決策
|
||||
|
||||
1. **GitHub API の --field オプション使用**: `--field` を使用して適切なエスケープ処理
|
||||
2. **シェル処理の簡素化**: 複雑なリダイレクトやパイプ処理を避ける
|
||||
3. **テンプレート処理の単純化**: HTML コメント除去処理を廃止し、完全保持
|
||||
4. **JSON エスケープの適切な処理**: 特殊文字を正しく処理
|
||||
|
||||
### デバッグオプション
|
||||
|
||||
```bash
|
||||
# 詳細ログ出力 (実装時に追加)
|
||||
/pr-auto-update --verbose
|
||||
```
|
||||
249
commands/pr-create.md
Normal file
249
commands/pr-create.md
Normal file
@@ -0,0 +1,249 @@
|
||||
## PR Create
|
||||
|
||||
Git 変更分析に基づく自動 PR 作成で効率的な Pull Request ワークフローを実現します。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
# 変更分析による自動 PR 作成
|
||||
git add . && git commit -m "feat: ユーザー認証機能の実装"
|
||||
「変更内容を分析して適切な説明文とラベルで Draft PR を作成してください」
|
||||
|
||||
# 既存テンプレート保持での更新
|
||||
cp .github/PULL_REQUEST_TEMPLATE.md pr_body.md
|
||||
「テンプレート構造を完全に保持して変更内容を補完してください」
|
||||
|
||||
# 段階的品質向上
|
||||
gh pr ready
|
||||
「品質確認完了後、Ready for Review に変更してください」
|
||||
```
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# 1. ブランチ作成とコミット
|
||||
git checkout main && git pull
|
||||
git checkout -b feat-user-profile
|
||||
git add . && git commit -m "feat: ユーザー プロフィール機能の実装"
|
||||
git push -u origin feat-user-profile
|
||||
|
||||
# 2. PR 作成
|
||||
「以下の手順で PR を作成してください:
|
||||
1. git diff --cached で変更内容を確認
|
||||
2. .github/PULL_REQUEST_TEMPLATE.md を使用して説明文を作成
|
||||
3. 変更内容から適切なラベルを最大 3 個選択
|
||||
4. Draft PR として作成 (HTML コメント保持)」
|
||||
|
||||
# 3. CI 確認後に Ready 化
|
||||
「CI が通ったら PR を Ready for Review に変更してください」
|
||||
```
|
||||
|
||||
### 実行手順
|
||||
|
||||
#### 1. ブランチ作成
|
||||
|
||||
```bash
|
||||
# ガイドラインに従った命名規則: {type}-{subject}
|
||||
git checkout main
|
||||
git pull
|
||||
git checkout -b feat-user-authentication
|
||||
|
||||
# ブランチ確認 (現在のブランチ名を表示)
|
||||
git branch --show-current
|
||||
```
|
||||
|
||||
#### 2. コミット
|
||||
|
||||
```bash
|
||||
# 変更をステージング
|
||||
git add .
|
||||
|
||||
# ガイドラインに従ったコミットメッセージ
|
||||
git commit -m "feat: ユーザー認証 API の実装"
|
||||
```
|
||||
|
||||
#### 3. リモートに Push
|
||||
|
||||
```bash
|
||||
# 初回 Push(upstream 設定)
|
||||
git push -u origin feat-user-authentication
|
||||
|
||||
# 2 回目以降
|
||||
git push
|
||||
```
|
||||
|
||||
#### 4. 自動分析による Draft PR 作成
|
||||
|
||||
**Step 1: 変更内容の分析**
|
||||
|
||||
```bash
|
||||
# ファイル変更の取得 (ステージ済み変更を確認)
|
||||
git diff --cached --name-only
|
||||
|
||||
# 内容分析 (最大 1000 行)
|
||||
git diff --cached | head -1000
|
||||
```
|
||||
|
||||
**Step 2: 説明文の自動生成**
|
||||
|
||||
```bash
|
||||
# テンプレート処理の優先順位
|
||||
# 1. 既存 PR 説明 (完全保持)
|
||||
# 2. .github/PULL_REQUEST_TEMPLATE.md
|
||||
# 3. デフォルトテンプレート
|
||||
|
||||
cp .github/PULL_REQUEST_TEMPLATE.md pr_body.md
|
||||
# HTML コメント・区切り線を保持したまま空セクションのみ補完
|
||||
```
|
||||
|
||||
**Step 3: ラベルの自動選択**
|
||||
|
||||
```bash
|
||||
# 利用可能ラベルの取得 (非インタラクティブ)
|
||||
「.github/labels.yml または GitHub リポジトリから利用可能なラベルを取得して、変更内容に基づいて適切なラベルを自動選択してください」
|
||||
|
||||
# パターンマッチングによる自動選択 (最大 3 個)
|
||||
# - ドキュメント: *.md, docs/ → documentation|docs
|
||||
# - テスト: test, spec → test|testing
|
||||
# - バグ修正: fix|bug → bug|fix
|
||||
# - 新機能: feat|feature → feature|enhancement
|
||||
```
|
||||
|
||||
**Step 4: GitHub API での PR 作成 (HTML コメント保持)**
|
||||
|
||||
```bash
|
||||
# PR 作成
|
||||
「以下の情報で Draft PR を作成してください:
|
||||
- タイトル: コミットメッセージから自動生成
|
||||
- 説明文: .github/PULL_REQUEST_TEMPLATE.md を使用して適切に記入
|
||||
- ラベル: 変更内容から自動選択 (最大 3 個)
|
||||
- ベースブランチ: main
|
||||
- HTML コメントは完全に保持」
|
||||
```
|
||||
|
||||
**方法 B: GitHub MCP(フォールバック)**
|
||||
|
||||
```javascript
|
||||
// HTML コメント保持での PR 作成
|
||||
mcp_github_create_pull_request({
|
||||
owner: "organization",
|
||||
repo: "repository",
|
||||
base: "main",
|
||||
head: "feat-user-authentication",
|
||||
title: "feat: ユーザー認証の実装",
|
||||
body: prBodyContent, // HTML コメントを含む完全な内容
|
||||
draft: true,
|
||||
maintainer_can_modify: true,
|
||||
});
|
||||
```
|
||||
|
||||
### 自動ラベル選択システム
|
||||
|
||||
#### ファイルパターンベース判定
|
||||
|
||||
- **ドキュメント**: `*.md`, `README`, `docs/` → `documentation|docs|doc`
|
||||
- **テスト**: `test`, `spec` → `test|testing`
|
||||
- **CI/CD**: `.github/`, `*.yml`, `Dockerfile` → `ci|build|infra|ops`
|
||||
- **依存関係**: `package.json`, `pubspec.yaml` → `dependencies|deps`
|
||||
|
||||
#### 変更内容ベース判定
|
||||
|
||||
- **バグ修正**: `fix|bug|error|crash|修正` → `bug|fix`
|
||||
- **新機能**: `feat|feature|add|implement|新機能|実装` → `feature|enhancement|feat`
|
||||
- **リファクタリング**: `refactor|clean|リファクタ` → `refactor|cleanup|clean`
|
||||
- **パフォーマンス**: `performance|perf|optimize` → `performance|perf`
|
||||
- **セキュリティ**: `security|secure` → `security`
|
||||
|
||||
#### 制約事項
|
||||
|
||||
- **最大 3 個まで**: 自動選択の上限
|
||||
- **既存ラベルのみ**: 新規作成禁止
|
||||
- **部分マッチ**: キーワード含有による判定
|
||||
|
||||
### プロジェクトガイドライン
|
||||
|
||||
#### 基本姿勢
|
||||
|
||||
1. **必ず Draft で開始**: すべての PR は Draft 状態で作成
|
||||
2. **段階的品質向上**: Phase 1(基本実装)→ Phase 2(テスト追加)→ Phase 3(ドキュメント更新)
|
||||
3. **適切なラベル**: 最大 3 種類のラベルを必ず付与
|
||||
4. **テンプレート使用**: `.github/PULL_REQUEST_TEMPLATE.md` を必ず使用
|
||||
5. **日本語スペース**: 日本語と半角英数字間に必ず半角スペース
|
||||
|
||||
#### ブランチ命名規則
|
||||
|
||||
```text
|
||||
{type}-{subject}
|
||||
|
||||
例:
|
||||
- feat-user-profile
|
||||
- fix-login-error
|
||||
- refactor-api-client
|
||||
```
|
||||
|
||||
#### コミットメッセージ
|
||||
|
||||
```text
|
||||
{type}: {description}
|
||||
|
||||
例:
|
||||
- feat: ユーザー認証 API の実装
|
||||
- fix: ログイン エラーの修正
|
||||
- docs: README の更新
|
||||
```
|
||||
|
||||
### テンプレート処理システム
|
||||
|
||||
#### 処理優先順位
|
||||
|
||||
1. **既存 PR 説明**: 既に記述されている内容を**完全に踏襲**
|
||||
2. **プロジェクトテンプレート**: `.github/PULL_REQUEST_TEMPLATE.md` 構造を維持
|
||||
3. **デフォルトテンプレート**: 上記が存在しない場合
|
||||
|
||||
#### 既存内容保持ルール
|
||||
|
||||
- **一文字も変更しない**: 既に記述されている内容
|
||||
- **空セクションのみ補完**: プレースホルダー部分を変更内容で埋める
|
||||
- **機能的コメント保持**: `<!-- Copilot review rule -->` などを維持
|
||||
- **HTML コメント保持**: `<!-- ... -->` を完全に保持
|
||||
- **区切り線保持**: `---` などの構造を維持
|
||||
|
||||
#### HTML コメント保持の対処法
|
||||
|
||||
**重要**: GitHub CLI (`gh pr edit`) は HTML コメントを自動エスケープし、シェル処理で `EOF < /dev/null` などの不正な文字列が混入する場合があります。
|
||||
|
||||
**根本的解決策**:
|
||||
|
||||
1. **GitHub API の --field オプション使用**: 適切なエスケープ処理で HTML コメント保持
|
||||
2. **テンプレート処理の簡素化**: 複雑なパイプ処理やリダイレクトを避ける
|
||||
3. **完全保持アプローチ**: HTML コメント削除処理を廃止し、テンプレートを完全保持
|
||||
|
||||
### レビューコメント対応
|
||||
|
||||
```bash
|
||||
# 変更後の再コミット
|
||||
git add .
|
||||
git commit -m "fix: レビュー フィードバックに基づく修正"
|
||||
git push
|
||||
```
|
||||
|
||||
### 注意事項
|
||||
|
||||
#### HTML コメント保持の重要性
|
||||
|
||||
- **GitHub CLI 制限**: `gh pr edit` は HTML コメントをエスケープ、不正文字列混入
|
||||
- **根本的回避策**: GitHub API の `--field` オプションで適切なエスケープ処理
|
||||
- **テンプレート完全保持**: HTML コメント削除処理を廃止し、構造を完全維持
|
||||
|
||||
#### 自動化の制約
|
||||
|
||||
- **新規ラベル禁止**: `.github/labels.yml` 定義外のラベル作成不可
|
||||
- **最大 3 ラベル**: 自動選択の上限
|
||||
- **既存内容優先**: 手動で記述された内容は一切変更しない
|
||||
|
||||
#### 段階的品質向上
|
||||
|
||||
- **Draft 必須**: すべての PR は Draft で開始
|
||||
- **CI 確認**: `gh pr checks` で状態確認
|
||||
- **Ready 移行**: 品質確認完了後に `gh pr ready`
|
||||
- **テンプレート完全遵守**: プロジェクト固有の構造を維持
|
||||
143
commands/pr-feedback.md
Normal file
143
commands/pr-feedback.md
Normal file
@@ -0,0 +1,143 @@
|
||||
## PR Feedback
|
||||
|
||||
Pull Request のレビューコメントを効率的に対応し、エラー分析 3 段階アプローチで根本解決を図ります。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
# レビューコメントの取得と分析
|
||||
gh pr view --comments
|
||||
「レビューコメントを優先度別に分類して対応計画を作成してください」
|
||||
|
||||
# エラー関連コメントの詳細分析
|
||||
gh pr checks
|
||||
「CI エラーを 3 段階アプローチで分析して根本原因を特定してください」
|
||||
|
||||
# 修正完了後の品質確認
|
||||
npm test && npm run lint
|
||||
「修正が完了したので回帰テストとコード品質をチェックしてください」
|
||||
```
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# コメント分類の実行
|
||||
gh pr view 123 --comments | head -20
|
||||
"レビューコメントを must/imo/nits/q に分類して対応順序を決めてください"
|
||||
|
||||
# エラー情報の収集
|
||||
npm run build 2>&1 | tee error.log
|
||||
"ビルドエラーの根本原因を特定し、適切な修正方法を提案してください"
|
||||
|
||||
# 修正実装の確認
|
||||
git diff HEAD~1
|
||||
"この修正がレビュー指摘事項を適切に解決しているか評価してください"
|
||||
```
|
||||
|
||||
### コメント分類体系
|
||||
|
||||
```text
|
||||
🔴 must: 修正必須
|
||||
├─ セキュリティ問題
|
||||
├─ 機能バグ
|
||||
├─ 設計原則違反
|
||||
└─ 規約違反
|
||||
|
||||
🟡 imo: 改善提案
|
||||
├─ より良い実装方法
|
||||
├─ パフォーマンス改善
|
||||
├─ 可読性向上
|
||||
└─ リファクタリング提案
|
||||
|
||||
🟢 nits: 軽微な指摘
|
||||
├─ タイポ修正
|
||||
├─ インデント調整
|
||||
├─ コメント追加
|
||||
└─ 命名の微調整
|
||||
|
||||
🔵 q: 質問・確認
|
||||
├─ 実装意図の確認
|
||||
├─ 仕様の明確化
|
||||
├─ 設計判断の背景
|
||||
└─ 代替案の検討
|
||||
```
|
||||
|
||||
### エラー分析 3 段階アプローチ
|
||||
|
||||
#### Stage 1: 情報収集
|
||||
|
||||
**必須実行**
|
||||
|
||||
- エラーメッセージの完全取得
|
||||
- スタックトレースの確認
|
||||
- 再現条件の特定
|
||||
|
||||
**推奨実行**
|
||||
|
||||
- 環境情報の収集
|
||||
- 最近の変更履歴
|
||||
- 関連ログの確認
|
||||
|
||||
#### Stage 2: 根本原因分析
|
||||
|
||||
- 5 Whys 分析の適用
|
||||
- 依存関係の追跡
|
||||
- 環境差異の確認
|
||||
- 最小再現コードの作成
|
||||
|
||||
#### Stage 3: 解決策実装
|
||||
|
||||
- 即座の対処 (ホットフィックス)
|
||||
- 根本的解決 (本質修正)
|
||||
- 予防策 (再発防止)
|
||||
|
||||
### 対応フロー
|
||||
|
||||
1. **コメント分析**: 優先度別の分類
|
||||
2. **修正計画**: 対応順序の決定
|
||||
3. **段階的修正**: Critical → High → Medium → Low
|
||||
4. **品質確認**: テスト・リント・ビルド
|
||||
5. **進捗報告**: 具体的な修正内容の説明
|
||||
|
||||
### 修正後の確認
|
||||
|
||||
```bash
|
||||
# 基本チェック
|
||||
npm test
|
||||
npm run lint
|
||||
npm run build
|
||||
|
||||
# 回帰テスト
|
||||
npm run test:e2e
|
||||
|
||||
# コード品質
|
||||
npm run test:coverage
|
||||
```
|
||||
|
||||
### 返信テンプレート
|
||||
|
||||
**修正完了報告**
|
||||
|
||||
```markdown
|
||||
@reviewer ご指摘ありがとうございます。
|
||||
修正完了いたしました:
|
||||
|
||||
- [具体的修正内容]
|
||||
- [テスト結果]
|
||||
- [確認方法]
|
||||
```
|
||||
|
||||
**技術判断説明**
|
||||
|
||||
```markdown
|
||||
実装背景:[理由]
|
||||
検討した代替案:[選択肢と判断根拠]
|
||||
採用案の利点:[メリット]
|
||||
```
|
||||
|
||||
### 注意事項
|
||||
|
||||
- **優先度遵守**: Critical → High → Medium → Low の順で対応
|
||||
- **テストファースト**: 修正前に回帰テスト確認
|
||||
- **明確な報告**: 修正内容と確認方法を具体的に記述
|
||||
- **建設的対話**: 技術的根拠に基づく丁寧なコミュニケーション
|
||||
78
commands/pr-issue.md
Normal file
78
commands/pr-issue.md
Normal file
@@ -0,0 +1,78 @@
|
||||
## Issue List
|
||||
|
||||
現在のリポジトリのオープン Issue 一覧を優先順位付きで表示します。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
# Claude に依頼
|
||||
「オープン Issue 一覧を優先順位付きで表示して」
|
||||
```
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# リポジトリ情報を取得
|
||||
gh repo view --json nameWithOwner | jq -r '.nameWithOwner'
|
||||
|
||||
# オープン Issue 情報を取得して Claude に依頼
|
||||
gh issue list --state open --json number,title,author,createdAt,updatedAt,labels,assignees,comments --limit 30
|
||||
|
||||
「上記の Issue を優先度別に整理して、各 Issue の 2 行概要も含めて表示して。URL は上記で取得したリポジトリ名を使用して生成して」
|
||||
```
|
||||
|
||||
### 表示形式
|
||||
|
||||
```text
|
||||
オープン Issue 一覧 (優先順位順)
|
||||
|
||||
### 高優先度
|
||||
#番号 タイトル [ラベル] | 作者 | オープンから経過時間 | コメント数 | 担当者
|
||||
├─ 概要 1 行目
|
||||
└─ 概要 2 行目
|
||||
https://github.com/owner/repo/issues/番号
|
||||
|
||||
### 中優先度
|
||||
(同様の形式)
|
||||
|
||||
### 低優先度
|
||||
(同様の形式)
|
||||
```
|
||||
|
||||
### 優先度の判定基準
|
||||
|
||||
**高優先度**
|
||||
|
||||
- `bug` ラベルが付いている Issue
|
||||
- `critical` や `urgent` ラベルが付いている Issue
|
||||
- `security` ラベルが付いている Issue
|
||||
|
||||
**中優先度**
|
||||
|
||||
- `enhancement` ラベルが付いている Issue
|
||||
- `feature` ラベルが付いている Issue
|
||||
- 担当者が設定されている Issue
|
||||
|
||||
**低優先度**
|
||||
|
||||
- `documentation` ラベルが付いている Issue
|
||||
- `good first issue` ラベルが付いている Issue
|
||||
- `wontfix` や `duplicate` ラベルが付いている Issue
|
||||
|
||||
### ラベルによるフィルタリング
|
||||
|
||||
```bash
|
||||
# 特定のラベルの Issue のみ取得
|
||||
gh issue list --state open --label "bug" --json number,title,author,createdAt,labels,comments --limit 30
|
||||
|
||||
# 複数ラベルでフィルタリング (AND 条件)
|
||||
gh issue list --state open --label "bug,high-priority" --json number,title,author,createdAt,labels,comments --limit 30
|
||||
```
|
||||
|
||||
### 注意事項
|
||||
|
||||
- GitHub CLI (`gh`) が必要です
|
||||
- オープン状態の Issue のみ表示します
|
||||
- 最大 30 件の Issue を表示します
|
||||
- 経過時間は Issue がオープンされてからの時間です
|
||||
- Issue の URL は実際のリポジトリ名から自動生成されます
|
||||
66
commands/pr-list.md
Normal file
66
commands/pr-list.md
Normal file
@@ -0,0 +1,66 @@
|
||||
## PR List
|
||||
|
||||
現在のリポジトリのオープン PR 一覧を優先順位付きで表示します。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
# Claude に依頼
|
||||
「オープン PR 一覧を優先順位付きで表示して」
|
||||
```
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# リポジトリ情報を取得
|
||||
gh repo view --json nameWithOwner | jq -r '.nameWithOwner'
|
||||
|
||||
# オープン PR 情報を取得して Claude に依頼
|
||||
gh pr list --state open --draft=false --json number,title,author,createdAt,additions,deletions,reviews --limit 30
|
||||
|
||||
「上記の PR を優先度別に整理して、各 PR の 2 行概要も含めて表示して。URL は上記で取得したリポジトリ名を使用して生成して」
|
||||
```
|
||||
|
||||
### 表示形式
|
||||
|
||||
```text
|
||||
オープン PR 一覧 (優先順位順)
|
||||
|
||||
### 高優先度
|
||||
#番号 タイトル [Draft/DNM] | 作者 | オープンから経過時間 | Approved 数 | +追加/-削除
|
||||
├─ 概要 1 行目
|
||||
└─ 概要 2 行目
|
||||
https://github.com/owner/repo/pull/番号
|
||||
|
||||
### 中優先度
|
||||
(同様の形式)
|
||||
|
||||
### 低優先度
|
||||
(同様の形式)
|
||||
```
|
||||
|
||||
### 優先度の判定基準
|
||||
|
||||
**高優先度**
|
||||
|
||||
- `fix:` バグ修正
|
||||
- `release:` リリース作業
|
||||
|
||||
**中優先度**
|
||||
|
||||
- `feat:` 新機能
|
||||
- `update:` 機能改善
|
||||
- その他通常の PR
|
||||
|
||||
**低優先度**
|
||||
|
||||
- DO NOT MERGE を含む PR
|
||||
- Draft で `test:`、`build:`、`perf:` の PR
|
||||
|
||||
### 注意事項
|
||||
|
||||
- GitHub CLI (`gh`) が必要です
|
||||
- オープン状態の PR のみ表示します (Draft は除外)
|
||||
- 最大 30 件の PR を表示します
|
||||
- 経過時間は PR がオープンされてからの時間です
|
||||
- PR の URL は実際のリポジトリ名から自動生成されます
|
||||
164
commands/pr-review.md
Normal file
164
commands/pr-review.md
Normal file
@@ -0,0 +1,164 @@
|
||||
## PR Review
|
||||
|
||||
Pull Request の体系的レビューでコード品質とアーキテクチャの健全性を確保します。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
# PR の包括的レビュー
|
||||
gh pr view 123 --comments
|
||||
「この PR を体系的にレビューしてコード品質、セキュリティ、アーキテクチャの観点からフィードバックしてください」
|
||||
|
||||
# セキュリティ特化レビュー
|
||||
gh pr diff 123
|
||||
「セキュリティリスクと脆弱性に焦点を当ててレビューしてください」
|
||||
|
||||
# アーキテクチャ観点のレビュー
|
||||
gh pr checkout 123 && find . -name "*.js" | head -10
|
||||
「レイヤー分離、依存関係、SOLID 原則の観点からアーキテクチャを評価してください」
|
||||
```
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# コード品質の数値的評価
|
||||
find . -name "*.js" -exec wc -l {} + | sort -rn | head -5
|
||||
"コードの複雑度、関数サイズ、重複度を評価して改善点を指摘してください"
|
||||
|
||||
# セキュリティ脆弱性チェック
|
||||
grep -r "password\|secret\|token" . --include="*.js" | head -10
|
||||
"機密情報の漏洩、ハードコーディング、認証バイパスのリスクをチェックしてください"
|
||||
|
||||
# アーキテクチャ違反の検出
|
||||
grep -r "import.*from.*\.\./\.\." . --include="*.js"
|
||||
"レイヤー違反、循環依存、結合度の問題を評価してください"
|
||||
```
|
||||
|
||||
### コメント分類体系
|
||||
|
||||
```text
|
||||
🔴 critical.must: 致命的問題
|
||||
├─ セキュリティ脆弱性
|
||||
├─ データ整合性問題
|
||||
└─ システム障害リスク
|
||||
|
||||
🟡 high.imo: 高優先度改善
|
||||
├─ 機能不全のリスク
|
||||
├─ パフォーマンス問題
|
||||
└─ 保守性の大幅低下
|
||||
|
||||
🟢 medium.imo: 中優先度改善
|
||||
├─ 可読性の向上
|
||||
├─ コード構造改善
|
||||
└─ テスト品質向上
|
||||
|
||||
🟢 low.nits: 軽微な指摘
|
||||
├─ スタイル統一
|
||||
├─ タイポ修正
|
||||
└─ コメント追加
|
||||
|
||||
🔵 info.q: 質問・情報提供
|
||||
├─ 実装意図の確認
|
||||
├─ 設計判断の背景
|
||||
└─ ベストプラクティスの共有
|
||||
```
|
||||
|
||||
### レビュー観点
|
||||
|
||||
#### 1. コード正確性
|
||||
|
||||
- **ロジックエラー**: 境界値、Null チェック、例外処理
|
||||
- **データ整合性**: 型安全性、バリデーション
|
||||
- **エラーハンドリング**: 網羅性、適切な処理
|
||||
|
||||
#### 2. セキュリティ
|
||||
|
||||
- **認証・認可**: 適切なチェック、権限管理
|
||||
- **入力検証**: SQL インジェクション、XSS 対策
|
||||
- **機密情報**: ログ出力禁止、暗号化
|
||||
|
||||
#### 3. パフォーマンス
|
||||
|
||||
- **アルゴリズム**: 時間計算量、メモリ効率
|
||||
- **データベース**: N+1 クエリ、インデックス最適化
|
||||
- **リソース**: メモリリーク、キャッシュ活用
|
||||
|
||||
#### 4. アーキテクチャ
|
||||
|
||||
- **レイヤー分離**: 依存方向、適切な分離
|
||||
- **結合度**: 疑結合、インターフェース活用
|
||||
- **SOLID 原則**: 単一責任、開放閉鎖、依存性逆転
|
||||
|
||||
### レビューフロー
|
||||
|
||||
1. **事前確認**: PR 情報、変更差分、関連 Issue
|
||||
2. **体系的チェック**: セキュリティ → 正確性 → パフォーマンス → アーキテクチャ
|
||||
3. **建設的フィードバック**: 具体的な改善案とコード例
|
||||
4. **フォローアップ**: 修正確認、CI 状態、最終承認
|
||||
|
||||
### コメントテンプレート
|
||||
|
||||
#### セキュリティ問題テンプレート
|
||||
|
||||
**形式:**
|
||||
|
||||
- 重要度: `critical.must.`
|
||||
- 問題: 明確に記述
|
||||
- コード例: 修正案を提示
|
||||
- 理由: なぜ必要か説明
|
||||
|
||||
**例:**
|
||||
|
||||
```text
|
||||
critical.must. パスワードが平文で保存されています
|
||||
|
||||
修正案:
|
||||
const bcrypt = require('bcrypt');
|
||||
const hashedPassword = await bcrypt.hash(password, 12);
|
||||
|
||||
セキュリティリスクを防ぐためハッシュ化が必須です。
|
||||
```
|
||||
|
||||
#### パフォーマンス改善テンプレート
|
||||
|
||||
**形式:**
|
||||
|
||||
- 重要度: `high.imo.`
|
||||
- 問題: パフォーマンス影響を説明
|
||||
- コード例: 改善案を提示
|
||||
- 効果: 期待される改善を記述
|
||||
|
||||
**例:**
|
||||
|
||||
```text
|
||||
high.imo. N+1 クエリ問題が発生します
|
||||
|
||||
改善案: Eager Loading
|
||||
const users = await User.findAll({ include: [Post] });
|
||||
|
||||
クエリ数を大幅に削減できます。
|
||||
```
|
||||
|
||||
#### アーキテクチャ違反テンプレート
|
||||
|
||||
**形式:**
|
||||
|
||||
- 重要度: `high.must.`
|
||||
- 問題: アーキテクチャ原則違反を指摘
|
||||
- 推奨: 具体的な改善方法
|
||||
|
||||
**例:**
|
||||
|
||||
```text
|
||||
high.must. レイヤー違反が発生しています
|
||||
|
||||
ドメイン層がインフラ層に直接依存しています。
|
||||
依存性逆転の原則でインターフェースを導入してください。
|
||||
```
|
||||
|
||||
### 注意事項
|
||||
|
||||
- **建設的トーン**: 攻撃的ではなく協調的なコミュニケーション
|
||||
- **具体的提案**: 問題の指摘だけでなく解決案を提示
|
||||
- **優先度付け**: Critical → High → Medium → Low の順で対応
|
||||
- **継続改善**: レビュー結果をナレッジベース化
|
||||
305
commands/refactor.md
Normal file
305
commands/refactor.md
Normal file
@@ -0,0 +1,305 @@
|
||||
## Refactor
|
||||
|
||||
安全で段階的なコードリファクタリングを実施し、SOLID 原則の遵守状況を定量的に評価します。技術的負債を可視化し、改善の優先順位を明確にします。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
# 複雑なコードの特定とリファクタリング計画
|
||||
find . -name "*.js" -exec wc -l {} + | sort -rn | head -10
|
||||
「大きなファイルをリファクタリングして複雑度を削減してください」
|
||||
|
||||
# 重複コードの検出と統合
|
||||
grep -r "function processUser" . --include="*.js"
|
||||
「重複した関数を Extract Method で共通化してください」
|
||||
|
||||
# SOLID 原則違反の検出
|
||||
grep -r "class.*Service" . --include="*.js" | head -10
|
||||
「これらのクラスが単一責任の原則に従っているか評価してください」
|
||||
```
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# 長いメソッドの検出
|
||||
grep -A 50 "function" src/*.js | grep -B 50 -A 50 "return" | wc -l
|
||||
"50 行以上のメソッドを Extract Method で分割してください"
|
||||
|
||||
# 条件分岐の複雑度
|
||||
grep -r "if.*if.*if" . --include="*.js"
|
||||
"ネストした条件文を Strategy パターンで改善してください"
|
||||
|
||||
# コードの臭いの検出
|
||||
grep -r "TODO\|FIXME\|HACK" . --exclude-dir=node_modules
|
||||
"技術的負債となっているコメントを解決してください"
|
||||
```
|
||||
|
||||
### リファクタリング技法
|
||||
|
||||
#### Extract Method(メソッド抽出)
|
||||
|
||||
```javascript
|
||||
// Before: 長大なメソッド
|
||||
function processOrder(order) {
|
||||
// 50 行の複雑な処理
|
||||
}
|
||||
|
||||
// After: 責任分離
|
||||
function processOrder(order) {
|
||||
validateOrder(order);
|
||||
calculateTotal(order);
|
||||
saveOrder(order);
|
||||
}
|
||||
```
|
||||
|
||||
#### Replace Conditional with Polymorphism
|
||||
|
||||
```javascript
|
||||
// Before: switch 文
|
||||
function getPrice(user) {
|
||||
switch (user.type) {
|
||||
case "premium":
|
||||
return basePrice * 0.8;
|
||||
case "regular":
|
||||
return basePrice;
|
||||
}
|
||||
}
|
||||
|
||||
// After: Strategy パターン
|
||||
class PremiumPricing {
|
||||
calculate(basePrice) {
|
||||
return basePrice * 0.8;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### SOLID 原則スコアリング (0-100 点)
|
||||
|
||||
#### 評価基準と配点
|
||||
|
||||
```text
|
||||
S - Single Responsibility(20 点)
|
||||
├─ クラスの責任数: 1 個 (20 点) | 2 個 (15 点) | 3 個 (10 点) | 4 個以上 (5 点)
|
||||
├─ メソッド数: <7 個 (+5 点) | 7-15 個 (+3 点) | >15 個 (0 点)
|
||||
├─ 変更理由の明確性: 明確 (+5 点) | 曖昧 (0 点)
|
||||
└─ スコア例: UserService(認証+データ処理) = 10 点
|
||||
|
||||
O - Open/Closed(20 点)
|
||||
├─ 拡張ポイント: Strategy/Template Method(20 点) | 継承のみ (10 点) | なし (5 点)
|
||||
├─ 新機能追加時の既存コード変更: 不要 (+5 点) | 最小限 (+3 点) | 必要 (0 点)
|
||||
├─ インターフェース利用: 適切 (+5 点) | 部分的 (+3 点) | なし (0 点)
|
||||
└─ スコア例: PaymentProcessor(Strategy) = 20 点
|
||||
|
||||
L - Liskov Substitution(20 点)
|
||||
├─ 派生クラスの契約遵守: 完全 (20 点) | 部分的 (10 点) | 違反 (0 点)
|
||||
├─ 事前条件の強化: なし (+5 点) | あり (-5 点)
|
||||
├─ 事後条件の弱化: なし (+5 点) | あり (-5 点)
|
||||
└─ スコア例: Square extends Rectangle = 0 点 (違反)
|
||||
|
||||
I - Interface Segregation(20 点)
|
||||
├─ インターフェースサイズ: 1-3 メソッド (20 点) | 4-7(15 点) | 8+(5 点)
|
||||
├─ 未使用メソッド実装: なし (+5 点) | 1-2 個 (+2 点) | 3 個以上 (0 点)
|
||||
├─ 役割の明確性: 単一役割 (+5 点) | 複数役割 (0 点)
|
||||
└─ スコア例: Readable/Writable 分離 = 20 点
|
||||
|
||||
D - Dependency Inversion(20 点)
|
||||
├─ 依存方向: 抽象のみ (20 点) | 混在 (10 点) | 具象のみ (5 点)
|
||||
├─ DI 利用: Constructor Injection(+5 点) | Setter(+3 点) | なし (0 点)
|
||||
├─ テスタビリティ: Mock 可能 (+5 点) | 困難 (0 点)
|
||||
└─ スコア例: Repository Pattern = 20 点
|
||||
|
||||
総合スコア = S + O + L + I + D
|
||||
├─ 90-100 点: Excellent(SOLID 完全準拠)
|
||||
├─ 70-89 点: Good(軽微な改善余地)
|
||||
├─ 50-69 点: Fair(リファクタリング推奨)
|
||||
├─ 30-49 点: Poor(大規模改善必要)
|
||||
└─ 0-29 点: Critical(設計見直し必須)
|
||||
```
|
||||
|
||||
### 技術的負債の定量化
|
||||
|
||||
#### 負債計算式
|
||||
|
||||
```text
|
||||
技術的負債 (時間) = 複雑度スコア × 影響範囲 × 修正難易度
|
||||
|
||||
複雑度スコア:
|
||||
├─ 循環的複雑度: 1-5(低) | 6-10(中) | 11-20(高) | 21+(危険)
|
||||
├─ 認知的複雑度: ネスト深度 × 条件分岐数
|
||||
├─ コード行数: <50(1 点) | 50-200(2 点) | 200-500(3 点) | 500+(5 点)
|
||||
└─ 重複率: 0-10%(1 点) | 10-30%(2 点) | 30-50%(3 点) | 50%+(5 点)
|
||||
|
||||
影響範囲:
|
||||
├─ 依存モジュール数: 直接依存 + 間接依存 × 0.5
|
||||
├─ 利用頻度: API 呼び出し回数/日
|
||||
├─ ビジネス重要度: Critical(×3) | High(×2) | Medium(×1) | Low(×0.5)
|
||||
└─ チーム知識: 理解者 1 名 (×3) | 2-3 名 (×2) | 4 名以上 (×1)
|
||||
|
||||
修正難易度:
|
||||
├─ テストカバレッジ: 0%(×3) | <50%(×2) | 50-80%(×1.5) | >80%(×1)
|
||||
├─ ドキュメント: なし (×2) | 不十分 (×1.5) | 十分 (×1)
|
||||
├─ 依存関係: 密結合 (×3) | 中程度 (×2) | 疎結合 (×1)
|
||||
└─ 変更リスク: Breaking Change(×3) | 互換性考慮 (×2) | 安全 (×1)
|
||||
|
||||
コスト換算:
|
||||
├─ 時間コスト: 負債時間 × 開発者時給
|
||||
├─ 機会損失: 新機能開発遅延日数 × 日次売上影響
|
||||
├─ 品質コスト: バグ発生確率 × 修正コスト × 発生頻度
|
||||
└─ 総コスト: 時間 + 機会損失 + 品質コスト
|
||||
```
|
||||
|
||||
#### 優先順位マトリクス
|
||||
|
||||
| 優先度 | 影響度 | 修正コスト | 対応期限 | 具体例 | 推奨アクション |
|
||||
| ------------------------- | ------ | ---------- | ---------- | ------------------------------------ | ---------------------------- |
|
||||
| **Critical(即座対応)** | 高 | 低 | 1 週間以内 | God Object、循環依存 | 即座にリファクタリング開始 |
|
||||
| **Important(計画的対応)** | 高 | 高 | 1 ヶ月以内 | 大規模な責務分離、アーキテクチャ変更 | スプリント計画に組み込み |
|
||||
| **Watch(監視対象)** | 低 | 高 | 3 ヶ月以内 | 複雑度の高い内部処理 | メトリクス監視、悪化時対応 |
|
||||
| **Acceptable(許容範囲)** | 低 | 低 | 対応不要 | 軽微なコードの臭い | 通常のリファクタリングで対応 |
|
||||
|
||||
### リファクタリング手順
|
||||
|
||||
1. **現状分析と測定**
|
||||
- 複雑度測定 (循環的・認知的)
|
||||
- SOLID スコア算出 (0-100 点)
|
||||
- 技術的負債の定量化 (時間/コスト)
|
||||
- 優先順位マトリクス作成
|
||||
|
||||
2. **段階的実行**
|
||||
- 小さなステップ (15-30 分単位)
|
||||
- 各変更後のテスト実行
|
||||
- 頻繁なコミット
|
||||
- SOLID スコアの継続測定
|
||||
|
||||
3. **品質確認**
|
||||
- テストカバレッジ維持
|
||||
- パフォーマンス測定
|
||||
- 技術的負債の削減確認
|
||||
- コードレビュー
|
||||
|
||||
### よくあるコードの臭いと負債スコア
|
||||
|
||||
| コードの臭い | 検出基準 | 負債スコア | 改善手法 |
|
||||
| ----------------------- | ------------------------ | ----------- | ----------------------- |
|
||||
| **God Object** | 責務 >3, メソッド >20 | 高 (15-20h) | Extract Class, SRP 適用 |
|
||||
| **Long Method** | 行数 >50, 複雑度 >10 | 中 (5-10h) | Extract Method |
|
||||
| **Duplicate Code** | 重複率 >30% | 高 (10-15h) | Extract Method/Class |
|
||||
| **Large Class** | 行数 >300, メソッド >15 | 高 (10-20h) | Extract Class |
|
||||
| **Long Parameter List** | パラメータ >4 | 低 (2-5h) | Parameter Object |
|
||||
| **Feature Envy** | 他クラス参照 >5 | 中 (5-10h) | Move Method |
|
||||
| **Data Clumps** | 同じ引数群の繰り返し | 低 (3-5h) | Extract Class |
|
||||
| **Primitive Obsession** | プリミティブ型の過度使用 | 中 (5-8h) | Replace with Object |
|
||||
| **Switch Statements** | case >5 | 中 (5-10h) | Strategy Pattern |
|
||||
| **Shotgun Surgery** | 変更時の影響箇所 >3 | 高 (10-15h) | Move Method/Field |
|
||||
|
||||
### 実践例:SOLID スコア評価
|
||||
|
||||
```javascript
|
||||
// 評価対象: UserService クラス
|
||||
class UserService {
|
||||
constructor(db, cache, logger, emailService) { // 4 つの依存
|
||||
this.db = db;
|
||||
this.cache = cache;
|
||||
this.logger = logger;
|
||||
this.emailService = emailService;
|
||||
}
|
||||
|
||||
// 責務 1: 認証
|
||||
authenticate(username, password) { /* ... */ }
|
||||
refreshToken(token) { /* ... */ }
|
||||
|
||||
// 責務 2: ユーザー管理
|
||||
createUser(data) { /* ... */ }
|
||||
updateUser(id, data) { /* ... */ }
|
||||
deleteUser(id) { /* ... */ }
|
||||
|
||||
// 責務 3: 通知
|
||||
sendWelcomeEmail(user) { /* ... */ }
|
||||
sendPasswordReset(email) { /* ... */ }
|
||||
}
|
||||
|
||||
// SOLID スコア評価結果
|
||||
S: 10 点 (責務 3 つ: 認証、CRUD、通知)
|
||||
O: 5 点 (拡張ポイントなし、直接実装)
|
||||
L: 15 点 (継承なし、該当せず)
|
||||
I: 10 点 (インターフェース未分離)
|
||||
D: 10 点 (具象クラス依存)
|
||||
総合: 50 点 (Fair - リファクタリング推奨)
|
||||
|
||||
// 技術的負債
|
||||
複雑度: 15 (メソッド 7 個、責務 3 つ)
|
||||
影響範囲: 8 (認証は全機能で使用)
|
||||
修正難易度: 2 (テストあり、ドキュメント不足)
|
||||
負債時間: 15 × 8 × 2 = 240 時間
|
||||
優先度: Critical (認証系は即座対応)
|
||||
```
|
||||
|
||||
### 改善後の実装例
|
||||
|
||||
```javascript
|
||||
// SOLID 原則適用後 (スコア: 90 点)
|
||||
|
||||
// S: 単一責任 (20 点)
|
||||
class AuthenticationService {
|
||||
authenticate(credentials) { /* ... */ }
|
||||
refreshToken(token) { /* ... */ }
|
||||
}
|
||||
|
||||
// O: 開放閉鎖 (20 点)
|
||||
class UserRepository {
|
||||
constructor(storage) { // Strategy Pattern
|
||||
this.storage = storage;
|
||||
}
|
||||
save(user) { return this.storage.save(user); }
|
||||
}
|
||||
|
||||
// I: インターフェース分離 (20 点)
|
||||
interface Readable {
|
||||
find(id);
|
||||
findAll();
|
||||
}
|
||||
interface Writable {
|
||||
save(entity);
|
||||
delete(id);
|
||||
}
|
||||
|
||||
// D: 依存性逆転 (20 点)
|
||||
class UserService {
|
||||
constructor(
|
||||
private auth: IAuthService,
|
||||
private repo: IUserRepository,
|
||||
private notifier: INotificationService
|
||||
) {}
|
||||
}
|
||||
|
||||
// 負債削減: 240 時間 → 20 時間 (92% 削減)
|
||||
```
|
||||
|
||||
### 自動化支援
|
||||
|
||||
```bash
|
||||
# SOLID スコア測定
|
||||
npx solid-analyzer src/ --output report.json
|
||||
|
||||
# 複雑度分析
|
||||
npx complexity-report src/ --format json
|
||||
sonar-scanner -Dsonar.javascript.lcov.reportPaths=coverage/lcov.info
|
||||
|
||||
# 技術的負債の可視化
|
||||
npx code-debt-analyzer --config .debt.yml
|
||||
|
||||
# コードフォーマット
|
||||
npm run lint:fix
|
||||
prettier --write src/
|
||||
|
||||
# テスト実行とカバレッジ
|
||||
npm test -- --coverage
|
||||
npm run test:mutation # 変異テスト
|
||||
```
|
||||
|
||||
### 注意事項
|
||||
|
||||
- **機能変更の禁止**: 外部動作を変えない
|
||||
- **テストファースト**: リファクタリング前にテスト追加
|
||||
- **段階的アプローチ**: 一度に大きな変更をしない
|
||||
- **継続的検証**: 各ステップでのテスト実行
|
||||
571
commands/role-debate.md
Normal file
571
commands/role-debate.md
Normal file
@@ -0,0 +1,571 @@
|
||||
## Role Debate
|
||||
|
||||
異なる専門性を持つロールが議論し、トレードオフを検討して最適解を導出するコマンド。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
/role-debate <ロール 1>,<ロール 2> [議題]
|
||||
/role-debate <ロール 1>,<ロール 2>,<ロール 3> [議題]
|
||||
```
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# セキュリティ vs パフォーマンスのトレードオフ
|
||||
/role-debate security,performance
|
||||
「JWT トークンの有効期限設定について」
|
||||
|
||||
# ユーザビリティ vs セキュリティのバランス
|
||||
/role-debate frontend,security
|
||||
「2 段階認証の UX 最適化について」
|
||||
|
||||
# 技術選定の議論
|
||||
/role-debate architect,mobile
|
||||
「クロスプラットフォーム vs ネイティブ開発の選択について」
|
||||
|
||||
# 3 者議論
|
||||
/role-debate architect,security,performance
|
||||
「マイクロサービス化の是非について」
|
||||
```
|
||||
|
||||
### 議論の基本原則
|
||||
|
||||
#### 建設的議論の心得
|
||||
|
||||
- **相互尊重**: 他ロールの専門性と視点を尊重する
|
||||
- **事実ベース**: 感情的反論ではなく、データ・根拠に基づく議論
|
||||
- **解決志向**: 批判のための批判ではなく、より良い解決策を目指す
|
||||
- **実装重視**: 理想論ではなく実現可能性を考慮した提案
|
||||
|
||||
#### 論拠の質的要件
|
||||
|
||||
- **公式文書**: 標準・ガイドライン・公式ドキュメントへの言及
|
||||
- **実証事例**: 成功事例・失敗事例の具体的引用
|
||||
- **定量評価**: 可能な限り数値・指標での比較
|
||||
- **時系列考慮**: 短期・中期・長期での影響評価
|
||||
|
||||
#### 議論倫理
|
||||
|
||||
- **誠実性**: 自身の専門分野の限界も認める
|
||||
- **開放性**: 新しい情報・視点に対する柔軟性
|
||||
- **透明性**: 判断根拠・前提条件の明示
|
||||
- **責任性**: 提案の実装リスクも含めて言及
|
||||
|
||||
### 議論プロセス
|
||||
|
||||
### Phase 1: 初期立場表明
|
||||
|
||||
各ロールが専門視点から独立して意見表明
|
||||
|
||||
- 推奨案の提示
|
||||
- 根拠となる標準・文書の明示
|
||||
- 想定されるリスク・課題の説明
|
||||
- 成功指標の定義
|
||||
|
||||
### Phase 2: 相互議論・反駁
|
||||
|
||||
ロール間でのクロス議論
|
||||
|
||||
- 他ロール提案への建設的反論
|
||||
- 見落とされた視点の指摘
|
||||
- トレードオフの明確化
|
||||
- 代替案の提示
|
||||
|
||||
### Phase 3: 妥協点探索
|
||||
|
||||
実装可能な解決策の模索
|
||||
|
||||
- 各視点の重要度評価
|
||||
- Win-Win 解決策の検討
|
||||
- 段階的実装アプローチ
|
||||
- リスク軽減策の検討
|
||||
|
||||
### Phase 4: 統合結論
|
||||
|
||||
最終的な推奨事項の決定
|
||||
|
||||
- 合意された解決策
|
||||
- 実装ロードマップ
|
||||
- 成功指標・測定方法
|
||||
- 将来の見直しポイント
|
||||
|
||||
### 出力フォーマット例
|
||||
|
||||
### 2 ロール議論の場合
|
||||
|
||||
```text
|
||||
ロール議論: Security vs Performance
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
議題: JWT トークンの有効期限設定
|
||||
|
||||
Security ロールの主張:
|
||||
「15 分の短期有効期限を推奨します」
|
||||
|
||||
根拠:
|
||||
- OWASP JWT Security Cheat Sheet 準拠
|
||||
- トークン漏洩時の被害時間窓を最小化
|
||||
- 攻撃者の利用可能時間を制限
|
||||
|
||||
懸念事項:
|
||||
- 長期有効期限は攻撃リスクが指数関数的に増大
|
||||
- コンプライアンス要件 (金融系) では短期が必須
|
||||
|
||||
成功指標:
|
||||
- セキュリティインシデント発生率 < 0.1%
|
||||
- 平均攻撃検出時間 < 5 分
|
||||
|
||||
Performance ロールの反論:
|
||||
「2 時間の有効期限を推奨します」
|
||||
|
||||
根拠:
|
||||
- Google OAuth 2.0 Best Practices 参考
|
||||
- 頻繁な再認証によるサーバー負荷増大を回避
|
||||
- ユーザー体験 (作業中断) の最小化
|
||||
|
||||
懸念事項:
|
||||
- 15 分間隔の再認証は API 負荷 8 倍増
|
||||
- モバイル環境での接続断が頻発
|
||||
|
||||
成功指標:
|
||||
- API レスポンス時間 < 200ms 維持
|
||||
- サーバー CPU 使用率 < 60%
|
||||
|
||||
相互議論:
|
||||
Security → Performance:
|
||||
「サーバー負荷よりもセキュリティ侵害のビジネス損失の方が甚大。
|
||||
例: Equifax 事件では 7 億ドルの損失」
|
||||
|
||||
Performance → Security:
|
||||
「リフレッシュトークン機構で両立可能。
|
||||
バックグラウンド更新により UX を損なわずセキュリティ確保」
|
||||
|
||||
Security → Performance:
|
||||
「リフレッシュトークンも攻撃対象。適切な実装が前提」
|
||||
|
||||
Performance → Security:
|
||||
「段階的アプローチを提案。通常操作 30 分、機密操作 15 分」
|
||||
|
||||
妥協点探索:
|
||||
共通理解:
|
||||
- ユーザー体験とセキュリティの両立が必要
|
||||
- リスクレベルに応じた柔軟な対応
|
||||
- 実装・運用コストの現実的考慮
|
||||
|
||||
Win-Win 要素:
|
||||
- リフレッシュトークン機構の活用
|
||||
- リスクベース認証の段階的導入
|
||||
- 自動ログアウト機能による補完
|
||||
|
||||
統合結論:
|
||||
「30 分有効期限 + リフレッシュトークン + リスクベース認証」
|
||||
|
||||
実装詳細:
|
||||
1. アクセストークン: 30 分有効期限
|
||||
2. リフレッシュトークン: 7 日有効期限
|
||||
3. 高リスク操作: 15 分で強制再認証
|
||||
4. 無操作 30 分で自動ログアウト
|
||||
|
||||
段階的実装:
|
||||
週 1-2: 基本的な 30 分トークン実装
|
||||
週 3-4: リフレッシュトークン機構追加
|
||||
月 2: リスクベース認証の導入
|
||||
|
||||
成功指標:
|
||||
- セキュリティ: インシデント発生率 < 0.1%
|
||||
- パフォーマンス: API 負荷増加率 < 20%
|
||||
- UX: ユーザー満足度 > 85%
|
||||
|
||||
将来の見直し:
|
||||
- 3 ヶ月後: 実際の攻撃パターン・負荷状況を評価
|
||||
- 6 ヶ月後: より洗練されたリスクベース認証への移行検討
|
||||
```
|
||||
|
||||
### 3 ロール議論の場合
|
||||
|
||||
```text
|
||||
ロール議論: Architect vs Security vs Performance
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
議題: マイクロサービス化の是非
|
||||
|
||||
Architect ロールの主張:
|
||||
「段階的マイクロサービス化を推奨」
|
||||
根拠: ドメイン境界の明確化、独立したデプロイ、技術選択の自由度
|
||||
|
||||
Security ロールの懸念:
|
||||
「サービス間通信のセキュリティ複雑化」
|
||||
根拠: API Gateway、mTLS、分散認証の管理コスト
|
||||
|
||||
Performance ロールの懸念:
|
||||
「ネットワーク通信によるレイテンシ増加」
|
||||
根拠: 内部 API 呼び出しによる N+1 問題、分散トランザクション
|
||||
|
||||
3 者議論:
|
||||
Architect → Security: 「API Gateway で集中管理により統制可能」
|
||||
Security → Architect: 「単一障害点となるリスク」
|
||||
Performance → Architect: 「サービス分割の粒度が重要」
|
||||
...(議論継続)
|
||||
|
||||
統合結論:
|
||||
「ドメイン駆動設計による段階的分割 + セキュリティファースト設計」
|
||||
```
|
||||
|
||||
### 効果的な議論パターン
|
||||
|
||||
### 技術選定
|
||||
|
||||
```bash
|
||||
/role-debate architect,performance
|
||||
「データベース選択: PostgreSQL vs MongoDB」
|
||||
|
||||
/role-debate frontend,mobile
|
||||
「UI フレームワーク: React vs Vue」
|
||||
|
||||
/role-debate security,architect
|
||||
「認証方式: JWT vs Session Cookie」
|
||||
```
|
||||
|
||||
### 設計判断
|
||||
|
||||
```bash
|
||||
/role-debate security,frontend
|
||||
「ユーザー認証の UX 設計」
|
||||
|
||||
/role-debate performance,mobile
|
||||
「データ同期戦略の最適化」
|
||||
|
||||
/role-debate architect,qa
|
||||
「テスト戦略とアーキテクチャ設計」
|
||||
```
|
||||
|
||||
### トレードオフ問題
|
||||
|
||||
```bash
|
||||
/role-debate security,performance
|
||||
「暗号化レベル vs 処理速度」
|
||||
|
||||
/role-debate frontend,performance
|
||||
「リッチ UI vs ページ読み込み速度」
|
||||
|
||||
/role-debate mobile,security
|
||||
「利便性 vs データ保護レベル」
|
||||
```
|
||||
|
||||
### ロール別議論特性
|
||||
|
||||
#### 🔒 Security ロール
|
||||
|
||||
```yaml
|
||||
議論スタンス:
|
||||
- 保守的アプローチ (リスク最小化)
|
||||
- 規則準拠重視 (標準からの逸脱に慎重)
|
||||
- 最悪ケース想定 (攻撃者視点)
|
||||
- 長期的影響重視 (技術的負債としてのセキュリティ)
|
||||
|
||||
典型的論点:
|
||||
- "セキュリティ vs 利便性" のトレードオフ
|
||||
- "コンプライアンス要件の必達"
|
||||
- "攻撃コスト vs 防御コストの比較"
|
||||
- "プライバシー保護の徹底"
|
||||
|
||||
論拠ソース:
|
||||
- OWASP ガイドライン
|
||||
- NIST フレームワーク
|
||||
- 業界標準 (ISO 27001, SOC 2)
|
||||
- 実際の攻撃事例・統計
|
||||
|
||||
議論での強み:
|
||||
- リスク評価の精度
|
||||
- 規制要件の知識
|
||||
- 攻撃手法への理解
|
||||
|
||||
注意すべき偏見:
|
||||
- 過度な保守性 (イノベーション阻害)
|
||||
- UX への配慮不足
|
||||
- 実装コストの軽視
|
||||
```
|
||||
|
||||
#### ⚡ Performance ロール
|
||||
|
||||
```yaml
|
||||
議論スタンス:
|
||||
- データ駆動判断 (測定ベース)
|
||||
- 効率性重視 (コスト対効果の最適化)
|
||||
- ユーザー体験優先 (体感速度重視)
|
||||
- 継続的改善 (段階的最適化)
|
||||
|
||||
典型的論点:
|
||||
- "パフォーマンス vs セキュリティ"
|
||||
- "最適化コスト vs 効果の投資対効果"
|
||||
- "現在 vs 将来のスケーラビリティ"
|
||||
- "ユーザー体験 vs システム効率"
|
||||
|
||||
論拠ソース:
|
||||
- Core Web Vitals メトリクス
|
||||
- ベンチマーク結果・統計
|
||||
- ユーザー行動への影響データ
|
||||
- 業界パフォーマンス標準
|
||||
|
||||
議論での強み:
|
||||
- 定量的評価能力
|
||||
- ボトルネック特定
|
||||
- 最適化手法の知識
|
||||
|
||||
注意すべき偏見:
|
||||
- セキュリティの軽視
|
||||
- 保守性への配慮不足
|
||||
- プレマチュアオプティマイゼーション
|
||||
```
|
||||
|
||||
#### 🏗️ Architect ロール
|
||||
|
||||
```yaml
|
||||
議論スタンス:
|
||||
- 長期視点重視 (システム進化への配慮)
|
||||
- バランス追求 (全体最適)
|
||||
- 段階的変更 (リスク管理)
|
||||
- 標準準拠 (実証済みパターン優先)
|
||||
|
||||
典型的論点:
|
||||
- "短期効率 vs 長期保守性"
|
||||
- "技術的負債 vs 開発速度"
|
||||
- "マイクロサービス vs モノリス"
|
||||
- "新技術採用 vs 安定性"
|
||||
|
||||
論拠ソース:
|
||||
- アーキテクチャパターン集
|
||||
- 設計原則 (SOLID, DDD)
|
||||
- 大規模システム事例
|
||||
- 技術進化のトレンド
|
||||
|
||||
議論での強み:
|
||||
- 全体俯瞰能力
|
||||
- 設計パターンの知識
|
||||
- 長期影響の予測
|
||||
|
||||
注意すべき偏見:
|
||||
- 過度な一般化
|
||||
- 新技術への保守性
|
||||
- 実装詳細への理解不足
|
||||
```
|
||||
|
||||
#### 🎨 Frontend ロール
|
||||
|
||||
```yaml
|
||||
議論スタンス:
|
||||
- ユーザー中心設計 (UX 最優先)
|
||||
- 包摂的アプローチ (多様性配慮)
|
||||
- 直感性重視 (学習コスト最小化)
|
||||
- アクセシビリティ標準 (WCAG 準拠)
|
||||
|
||||
典型的論点:
|
||||
- "ユーザビリティ vs セキュリティ"
|
||||
- "デザイン統一 vs プラットフォーム最適化"
|
||||
- "機能性 vs シンプルさ"
|
||||
- "パフォーマンス vs リッチな体験"
|
||||
|
||||
論拠ソース:
|
||||
- UX 研究・ユーザビリティテスト結果
|
||||
- アクセシビリティガイドライン
|
||||
- デザインシステム標準
|
||||
- ユーザー行動データ
|
||||
|
||||
議論での強み:
|
||||
- ユーザー視点の代弁
|
||||
- デザイン原則の知識
|
||||
- アクセシビリティ要件
|
||||
|
||||
注意すべき偏見:
|
||||
- 技術制約への理解不足
|
||||
- セキュリティ要件の軽視
|
||||
- パフォーマンス影響の過小評価
|
||||
```
|
||||
|
||||
#### 📱 Mobile ロール
|
||||
|
||||
```yaml
|
||||
議論スタンス:
|
||||
- プラットフォーム特化 (iOS/Android 差異考慮)
|
||||
- コンテキスト適応 (移動中・片手操作)
|
||||
- リソース制約 (バッテリー・メモリ・通信)
|
||||
- ストア準拠 (審査ガイドライン)
|
||||
|
||||
典型的論点:
|
||||
- "ネイティブ vs クロスプラットフォーム"
|
||||
- "オフライン対応 vs リアルタイム同期"
|
||||
- "バッテリー効率 vs 機能性"
|
||||
- "プラットフォーム統一 vs 最適化"
|
||||
|
||||
論拠ソース:
|
||||
- iOS HIG / Android Material Design
|
||||
- App Store / Google Play ガイドライン
|
||||
- モバイル UX 研究
|
||||
- デバイス性能統計
|
||||
|
||||
議論での強み:
|
||||
- モバイル特有制約の理解
|
||||
- プラットフォーム差異の知識
|
||||
- タッチインターフェース設計
|
||||
|
||||
注意すべき偏見:
|
||||
- Web プラットフォームへの理解不足
|
||||
- サーバーサイド制約の軽視
|
||||
- デスクトップ環境への配慮不足
|
||||
```
|
||||
|
||||
#### 🔍 Analyzer ロール
|
||||
|
||||
```yaml
|
||||
議論スタンス:
|
||||
- 証拠重視 (データファースト)
|
||||
- 仮説検証 (科学的アプローチ)
|
||||
- 構造的思考 (システム思考)
|
||||
- バイアス除去 (客観性追求)
|
||||
|
||||
典型的論点:
|
||||
- "相関関係 vs 因果関係"
|
||||
- "症状対症療法 vs 根本解決"
|
||||
- "仮説 vs 事実の区別"
|
||||
- "短期症状 vs 構造的問題"
|
||||
|
||||
論拠ソース:
|
||||
- 実測データ・ログ分析
|
||||
- 統計的手法・分析結果
|
||||
- システム思考理論
|
||||
- 認知バイアス研究
|
||||
|
||||
議論での強み:
|
||||
- 論理的分析能力
|
||||
- 証拠評価の客観性
|
||||
- 構造的問題の発見
|
||||
|
||||
注意すべき偏見:
|
||||
- 分析麻痺 (行動力不足)
|
||||
- 完璧主義 (実用性軽視)
|
||||
- データ万能主義
|
||||
```
|
||||
|
||||
### 議論進行テンプレート
|
||||
|
||||
#### Phase 1: 立場表明テンプレート
|
||||
|
||||
```text
|
||||
【ロール名】の推奨案:
|
||||
「[具体的な提案]」
|
||||
|
||||
根拠:
|
||||
- [公式文書・標準への言及]
|
||||
- [実証事例・データ]
|
||||
- [専門分野の原則]
|
||||
|
||||
想定効果:
|
||||
- [短期的効果]
|
||||
- [中長期的効果]
|
||||
|
||||
懸念・リスク:
|
||||
- [実装リスク]
|
||||
- [運用リスク]
|
||||
- [他分野への影響]
|
||||
|
||||
成功指標:
|
||||
- [測定可能な指標 1]
|
||||
- [測定可能な指標 2]
|
||||
```
|
||||
|
||||
#### Phase 2: 反駁テンプレート
|
||||
|
||||
```text
|
||||
[対象ロール] への反論:
|
||||
「[対象提案への具体的反論]」
|
||||
|
||||
反論根拠:
|
||||
- [見落とされた視点]
|
||||
- [対立する証拠・事例]
|
||||
- [専門分野からの懸念]
|
||||
|
||||
代替案:
|
||||
「[改良された提案]」
|
||||
|
||||
妥協可能ポイント:
|
||||
- [受け入れ可能な条件]
|
||||
- [段階的実装の可能性]
|
||||
```
|
||||
|
||||
#### Phase 3: 統合解決テンプレート
|
||||
|
||||
```text
|
||||
統合解決案:
|
||||
「[各ロールの懸念を考慮した最終提案]」
|
||||
|
||||
各ロールへの配慮:
|
||||
- [Security]: [セキュリティ要件の満足方法]
|
||||
- [Performance]: [パフォーマンス要件の満足方法]
|
||||
- [その他]: [その他要件の満足方法]
|
||||
|
||||
実装ロードマップ:
|
||||
- フェーズ 1 (即座): [緊急対応事項]
|
||||
- フェーズ 2 (短期): [基本実装]
|
||||
- フェーズ 3 (中期): [完全実装]
|
||||
|
||||
成功指標・測定方法:
|
||||
- [統合的な成功指標]
|
||||
- [測定方法・頻度]
|
||||
- [見直しタイミング]
|
||||
```
|
||||
|
||||
### 議論品質チェックリスト
|
||||
|
||||
#### 論拠の質
|
||||
|
||||
- [ ] 公式文書・標準への言及がある
|
||||
- [ ] 具体的な事例・データが提示されている
|
||||
- [ ] 推測と事実が明確に区別されている
|
||||
- [ ] 情報源が明示されている
|
||||
|
||||
#### 議論の建設性
|
||||
|
||||
- [ ] 相手の提案を正確に理解している
|
||||
- [ ] 感情的でなく論理的な反論
|
||||
- [ ] 代替案も提示している
|
||||
- [ ] Win-Win の可能性を探っている
|
||||
|
||||
#### 実装可能性
|
||||
|
||||
- [ ] 技術的実現可能性を考慮
|
||||
- [ ] 実装コスト・期間を見積もり
|
||||
- [ ] 段階的実装の可能性を検討
|
||||
- [ ] リスク軽減策を提示
|
||||
|
||||
#### 統合性
|
||||
|
||||
- [ ] 他分野への影響を考慮
|
||||
- [ ] 全体最適を追求
|
||||
- [ ] 長期的視点を含む
|
||||
- [ ] 測定可能な成功指標を設定
|
||||
|
||||
### Claude との連携
|
||||
|
||||
```bash
|
||||
# 設計文書を元にした議論
|
||||
cat system-design.md
|
||||
/role-debate architect,security
|
||||
「この設計のセキュリティ面での課題を議論して」
|
||||
|
||||
# 問題を元にした解決策議論
|
||||
cat performance-issues.md
|
||||
/role-debate performance,architect
|
||||
「パフォーマンス問題の根本的解決策を議論して」
|
||||
|
||||
# 要件を元にした技術選定議論
|
||||
/role-debate mobile,frontend
|
||||
「iOS ・Android ・Web の統一 UI 戦略について議論して」
|
||||
```
|
||||
|
||||
### 注意事項
|
||||
|
||||
- 議論は時間がかかる場合があります (複雑なトピックほど長時間)
|
||||
- 3 つ以上のロールでは議論が発散する可能性があります
|
||||
- 最終判断は議論結果を参考にユーザーが行ってください
|
||||
- 緊急性の高い問題では single role や multi-role を先に検討してください
|
||||
276
commands/role-help.md
Normal file
276
commands/role-help.md
Normal file
@@ -0,0 +1,276 @@
|
||||
## Role Help
|
||||
|
||||
どのロールを使うべきか迷った時の選択ガイドとヘルプシステム。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
/role-help # 全般的なロール選択ガイド
|
||||
/role-help <状況/問題> # 特定状況での推奨ロール
|
||||
/role-help compare <ロール 1>,<ロール 2> # ロール比較
|
||||
```
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# 一般的なガイダンス
|
||||
/role-help
|
||||
→ 利用可能なロールと特徴の一覧表示
|
||||
|
||||
# 状況別の推奨
|
||||
/role-help "API のセキュリティが心配"
|
||||
→ security ロールの推奨と使用方法
|
||||
|
||||
# ロール比較
|
||||
/role-help compare frontend,mobile
|
||||
→ frontend と mobile の違いと使い分け
|
||||
```
|
||||
|
||||
### 状況別ロール選択ガイド
|
||||
|
||||
### セキュリティ関連
|
||||
|
||||
```text
|
||||
こんな時は security ロール:
|
||||
✅ ログイン・認証機能の実装
|
||||
✅ API のセキュリティ脆弱性チェック
|
||||
✅ データ暗号化・プライバシー保護
|
||||
✅ セキュリティコンプライアンス確認
|
||||
✅ 侵入テスト・ペネトレーションテスト
|
||||
|
||||
使い方: /role security
|
||||
```
|
||||
|
||||
### 🏗️ アーキテクチャ・設計
|
||||
|
||||
```text
|
||||
こんな時は architect ロール:
|
||||
✅ システム全体の設計評価
|
||||
✅ マイクロサービス vs モノリス判断
|
||||
✅ データベース設計・技術選定
|
||||
✅ スケーラビリティ・拡張性の検討
|
||||
✅ 技術的負債の評価・改善計画
|
||||
|
||||
使い方: /role architect
|
||||
```
|
||||
|
||||
### ⚡ パフォーマンス問題
|
||||
|
||||
```text
|
||||
こんな時は performance ロール:
|
||||
✅ アプリケーションが遅い
|
||||
✅ データベースクエリの最適化
|
||||
✅ Web ページの読み込み速度改善
|
||||
✅ メモリ・CPU 使用量の最適化
|
||||
✅ スケーリング・負荷対策
|
||||
|
||||
使い方: /role performance
|
||||
```
|
||||
|
||||
### 🔍 問題の原因調査
|
||||
|
||||
```text
|
||||
こんな時は analyzer ロール:
|
||||
✅ バグ・エラーの根本原因分析
|
||||
✅ システム障害の原因究明
|
||||
✅ 複雑な問題の構造的分析
|
||||
✅ データ分析・統計的調査
|
||||
✅ なぜこの問題が起きたかの解明
|
||||
|
||||
使い方: /role analyzer
|
||||
```
|
||||
|
||||
### 🎨 フロントエンド・UI/UX
|
||||
|
||||
```text
|
||||
こんな時は frontend ロール:
|
||||
✅ ユーザーインターフェースの改善
|
||||
✅ アクセシビリティ対応
|
||||
✅ レスポンシブデザイン
|
||||
✅ ユーザビリティ・使いやすさ向上
|
||||
✅ Web フロントエンド技術全般
|
||||
|
||||
使い方: /role frontend
|
||||
```
|
||||
|
||||
### 📱 モバイルアプリ開発
|
||||
|
||||
```text
|
||||
こんな時は mobile ロール:
|
||||
✅ iOS ・Android アプリの最適化
|
||||
✅ モバイル特有の UX 設計
|
||||
✅ タッチインターフェース最適化
|
||||
✅ オフライン対応・同期機能
|
||||
✅ App Store ・Google Play 対応
|
||||
|
||||
使い方: /role mobile
|
||||
```
|
||||
|
||||
### 👀 コードレビュー・品質
|
||||
|
||||
```text
|
||||
こんな時は reviewer ロール:
|
||||
✅ コードの品質チェック
|
||||
✅ 可読性・保守性の評価
|
||||
✅ コーディング規約の確認
|
||||
✅ リファクタリング提案
|
||||
✅ PR ・コミットのレビュー
|
||||
|
||||
使い方: /role reviewer
|
||||
```
|
||||
|
||||
### 🧪 テスト・品質保証
|
||||
|
||||
```text
|
||||
こんな時は qa ロール:
|
||||
✅ テスト戦略の立案
|
||||
✅ テストカバレッジの評価
|
||||
✅ 自動テストの実装方針
|
||||
✅ バグ防止・品質向上策
|
||||
✅ CI/CD でのテスト自動化
|
||||
|
||||
使い方: /role qa
|
||||
```
|
||||
|
||||
### 複数ロールが必要な場合
|
||||
|
||||
### 🔄 multi-role (並行分析)
|
||||
|
||||
```text
|
||||
こんな時は multi-role:
|
||||
✅ 複数の専門視点での評価が欲しい
|
||||
✅ 統合的な改善計画を立てたい
|
||||
✅ 各分野の評価を比較したい
|
||||
✅ 矛盾・重複を整理したい
|
||||
|
||||
例: /multi-role security,performance
|
||||
```
|
||||
|
||||
### 🗣️ role-debate (議論)
|
||||
|
||||
```text
|
||||
こんな時は role-debate:
|
||||
✅ 専門分野間でトレードオフがある
|
||||
✅ 技術選定で意見が分かれる
|
||||
✅ 設計方針を議論で決めたい
|
||||
✅ 異なる視点の議論を聞きたい
|
||||
|
||||
例: /role-debate security,performance
|
||||
```
|
||||
|
||||
### 🤖 smart-review (自動提案)
|
||||
|
||||
```text
|
||||
こんな時は smart-review:
|
||||
✅ どのロールを使うべきか分からない
|
||||
✅ 現在の状況に最適なアプローチを知りたい
|
||||
✅ 複数の選択肢から選びたい
|
||||
✅ 初心者で判断に迷う
|
||||
|
||||
例: /smart-review
|
||||
```
|
||||
|
||||
### ロール比較表
|
||||
|
||||
### セキュリティ系
|
||||
|
||||
| ロール | 主な用途 | 得意分野 | 苦手分野 |
|
||||
| -------- | ---------------- | -------------------- | ------------------ |
|
||||
| security | 脆弱性・攻撃対策 | 脅威分析、認証設計 | UX、パフォーマンス |
|
||||
| analyzer | 根本原因分析 | 論理的分析、証拠収集 | 予防策、将来計画 |
|
||||
|
||||
### 設計系
|
||||
|
||||
| ロール | 主な用途 | 得意分野 | 苦手分野 |
|
||||
| --------- | ------------ | ------------------ | ------------------ |
|
||||
| architect | システム設計 | 長期視点、全体最適 | 詳細実装、短期解決 |
|
||||
| reviewer | コード品質 | 実装レベル、保守性 | ビジネス要件、UX |
|
||||
|
||||
### パフォーマンス系
|
||||
|
||||
| ロール | 主な用途 | 得意分野 | 苦手分野 |
|
||||
| ----------- | -------------- | ------------------ | -------------------- |
|
||||
| performance | 高速化・最適化 | 測定、ボトルネック | セキュリティ、UX |
|
||||
| qa | 品質保証 | テスト、自動化 | 設計、アーキテクチャ |
|
||||
|
||||
### ユーザー体験系
|
||||
|
||||
| ロール | 主な用途 | 得意分野 | 苦手分野 |
|
||||
| -------- | ----------- | -------------------------- | ------------------- |
|
||||
| frontend | Web UI/UX | ブラウザ、アクセシビリティ | サーバーサイド、DB |
|
||||
| mobile | モバイル UX | タッチ、オフライン対応 | サーバーサイド、Web |
|
||||
|
||||
### 迷った時のフローチャート
|
||||
|
||||
```text
|
||||
問題の性質は?
|
||||
├─ セキュリティ関連 → security
|
||||
├─ パフォーマンス問題 → performance
|
||||
├─ バグ・障害調査 → analyzer
|
||||
├─ UI/UX 改善 → frontend or mobile
|
||||
├─ 設計・アーキテクチャ → architect
|
||||
├─ コード品質 → reviewer
|
||||
├─ テスト関連 → qa
|
||||
└─ 複合的・複雑 → smart-review で提案
|
||||
|
||||
複数の分野にまたがる?
|
||||
├─ 統合分析したい → multi-role
|
||||
├─ 議論・トレードオフ → role-debate
|
||||
└─ 判断に迷う → smart-review
|
||||
```
|
||||
|
||||
### よくある質問
|
||||
|
||||
### Q: frontend と mobile の違いは?
|
||||
|
||||
```text
|
||||
A:
|
||||
frontend: Web ブラウザ中心、HTML/CSS/JavaScript
|
||||
mobile: モバイルアプリ中心、iOS/Android ネイティブ・React Native など
|
||||
|
||||
両方関連する場合は multi-role frontend,mobile がおすすめ
|
||||
```
|
||||
|
||||
### Q: security と analyzer の使い分けは?
|
||||
|
||||
```text
|
||||
A:
|
||||
security: 攻撃・脅威の予防、セキュリティ設計
|
||||
analyzer: 既に起きた問題の原因分析、調査
|
||||
|
||||
セキュリティインシデントの調査なら multi-role security,analyzer
|
||||
```
|
||||
|
||||
### Q: architect と performance の違いは?
|
||||
|
||||
```text
|
||||
A:
|
||||
architect: システム全体の長期的設計、拡張性
|
||||
performance: 具体的な速度・効率の改善
|
||||
|
||||
大規模システムの性能設計なら multi-role architect,performance
|
||||
```
|
||||
|
||||
### Claude との連携
|
||||
|
||||
```bash
|
||||
# 状況説明と組み合わせ
|
||||
/role-help
|
||||
「React アプリのページ読み込みが遅くて、ユーザーから苦情が来ている」
|
||||
|
||||
# ファイル内容と組み合わせ
|
||||
cat problem-description.md
|
||||
/role-help
|
||||
「この問題に最適なロールを推奨して」
|
||||
|
||||
# 特定の選択肢で迷っている場合
|
||||
/role-help compare security,performance
|
||||
「JWT トークンの有効期限問題でどちらのロールが適切?」
|
||||
```
|
||||
|
||||
### 注意事項
|
||||
|
||||
- 複雑な問題ほど複数ロールの組み合わせが効果的です
|
||||
- 緊急性が高い場合は single role で迅速に対応
|
||||
- 迷った時は smart-review で自動提案を受けることをおすすめします
|
||||
- 最終的な判断はユーザーが問題の性質を考慮して決定してください
|
||||
366
commands/role.md
Normal file
366
commands/role.md
Normal file
@@ -0,0 +1,366 @@
|
||||
## Role
|
||||
|
||||
特定のロール (役割) に切り替えて、専門的な分析や作業を実行します。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
/role <ロール名> [--agent|-a]
|
||||
```
|
||||
|
||||
### オプション
|
||||
|
||||
- `--agent` または `-a` : サブエージェントとして独立実行 (大規模分析時推奨)
|
||||
- このオプションを使用すると、ロールの description に自動委任促進フレーズ ("use PROACTIVELY" など) が含まれている場合、より積極的な自動委任が有効になります
|
||||
|
||||
### 利用可能なロール
|
||||
|
||||
#### 専門分析ロール (Evidence-First 統合)
|
||||
|
||||
- `security` : セキュリティ監査専門家 (OWASP Top 10・脅威モデリング・Zero Trust 原則・CVE 照合)
|
||||
- `performance` : パフォーマンス最適化専門家 (Core Web Vitals・RAIL モデル・段階的最適化・ROI 分析)
|
||||
- `analyzer` : 根本原因分析専門家 (5 Whys・システム思考・仮説駆動・認知バイアス対策)
|
||||
- `frontend` : フロントエンド・UI/UX 専門家 (WCAG 2.1・デザインシステム・ユーザー中心設計)
|
||||
- `mobile` : モバイル開発専門家 (iOS HIG・Android Material Design・クロスプラットフォーム戦略)
|
||||
- `backend` : バックエンド・サーバーサイド専門家 (RESTful 設計・スケーラビリティ・データベース最適化)
|
||||
|
||||
#### 開発支援ロール
|
||||
|
||||
- `reviewer` : コードレビュー専門家 (可読性・保守性・パフォーマンス・リファクタリング提案)
|
||||
- `architect` : システムアーキテクト (Evidence-First 設計・MECE 分析・進化的アーキテクチャ)
|
||||
- `qa` : テストエンジニア (テストカバレッジ・E2E/統合/単体戦略・自動化提案)
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# セキュリティ監査モードに切り替え (通常)
|
||||
/role security
|
||||
「このプロジェクトのセキュリティ脆弱性をチェックして」
|
||||
|
||||
# セキュリティ監査をサブエージェントで実行 (大規模分析)
|
||||
/role security --agent
|
||||
「プロジェクト全体のセキュリティ監査を実行して」
|
||||
|
||||
# コードレビューモードに切り替え
|
||||
/role reviewer
|
||||
「最近の変更をレビューして改善点を指摘して」
|
||||
|
||||
# パフォーマンス最適化モードに切り替え
|
||||
/role performance
|
||||
「アプリケーションのボトルネックを分析して」
|
||||
|
||||
# 根本原因分析モードに切り替え
|
||||
/role analyzer
|
||||
「この障害の根本原因を調査して」
|
||||
|
||||
# フロントエンド専門モードに切り替え
|
||||
/role frontend
|
||||
「UI/UX の改善点を評価して」
|
||||
|
||||
# モバイル開発専門モードに切り替え
|
||||
/role mobile
|
||||
「このアプリのモバイル最適化を評価して」
|
||||
|
||||
# 通常モードに戻る
|
||||
/role default
|
||||
「通常の Claude に戻ります」
|
||||
```
|
||||
|
||||
### Claude との連携
|
||||
|
||||
```bash
|
||||
# セキュリティ特化の分析
|
||||
/role security
|
||||
cat app.js
|
||||
「このコードの潜在的なセキュリティリスクを詳細に分析して」
|
||||
|
||||
# アーキテクチャ観点での評価
|
||||
/role architect
|
||||
ls -la src/
|
||||
「現在の構造の問題点と改善案を提示して」
|
||||
|
||||
# テスト戦略の立案
|
||||
/role qa
|
||||
「このプロジェクトに最適なテスト戦略を提案して」
|
||||
```
|
||||
|
||||
### 詳細例
|
||||
|
||||
```bash
|
||||
# 複数ロールでの分析
|
||||
/role security
|
||||
「まずセキュリティ観点でチェック」
|
||||
git diff HEAD~1
|
||||
|
||||
/role reviewer
|
||||
「次に一般的なコード品質をレビュー」
|
||||
|
||||
/role architect
|
||||
「最後にアーキテクチャの観点から評価」
|
||||
|
||||
# ロール固有の出力形式
|
||||
/role security
|
||||
セキュリティ分析結果
|
||||
━━━━━━━━━━━━━━━━━━━━━
|
||||
脆弱性: SQL インジェクション
|
||||
深刻度: High
|
||||
該当箇所: db.js:42
|
||||
修正案: パラメータ化クエリを使用
|
||||
```
|
||||
|
||||
### Evidence-First 統合機能
|
||||
|
||||
#### 核心理念
|
||||
|
||||
各ロールは **Evidence-First (根拠ベース)** アプローチを採用し、推測ではなく **実証済みの手法・公式ガイドライン・客観的データ** に基づいて分析・提案を行います。
|
||||
|
||||
#### 共通特徴
|
||||
|
||||
- **公式ドキュメント準拠**: 各分野の権威ある公式ガイドラインを優先参照
|
||||
- **MECE 分析**: 漏れなく重複なく体系的な問題分解
|
||||
- **多角的評価**: 技術・ビジネス・運用・ユーザーの複数視点
|
||||
- **認知バイアス対策**: 確証バイアス等の排除メカニズム
|
||||
- **議論特性**: ロール固有の専門的議論スタンス
|
||||
|
||||
### 専門分析ロールの詳細
|
||||
|
||||
#### security (セキュリティ監査専門家)
|
||||
|
||||
**Evidence-Based セキュリティ監査**
|
||||
|
||||
- OWASP Top 10・Testing Guide・SAMM による体系的評価
|
||||
- CVE・NVD データベース照合による既知脆弱性チェック
|
||||
- STRIDE・Attack Tree・PASTA による脅威モデリング
|
||||
- Zero Trust 原則・最小権限による設計評価
|
||||
|
||||
**専門的報告形式**
|
||||
|
||||
```text
|
||||
Evidence-Based セキュリティ監査結果
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
OWASP Top 10 準拠度: XX% / CVE 照合: 完了
|
||||
脅威モデリング: STRIDE 分析済み
|
||||
```
|
||||
|
||||
#### performance (パフォーマンス最適化専門家)
|
||||
|
||||
**Evidence-First パフォーマンス最適化**
|
||||
|
||||
- Core Web Vitals (LCP・FID・CLS)・RAIL モデル準拠
|
||||
- Google PageSpeed Insights 推奨事項の実装
|
||||
- 段階的最適化プロセス (測定→分析→優先順位→実装)
|
||||
- ROI 分析による投資対効果の定量評価
|
||||
|
||||
**専門的報告形式**
|
||||
|
||||
```text
|
||||
Evidence-First パフォーマンス分析
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
Core Web Vitals: LCP[XXXms] FID[XXXms] CLS[X.XX]
|
||||
Performance Budget: XX% / ROI 分析: XX% 改善予測
|
||||
```
|
||||
|
||||
#### analyzer (根本原因分析専門家)
|
||||
|
||||
**Evidence-First 根本原因分析**
|
||||
|
||||
- 5 Whys + α手法 (反証検討含む)
|
||||
- システム思考による構造分析 (Peter Senge 原則)
|
||||
- 認知バイアス対策 (確証バイアス・アンカリング等の排除)
|
||||
- 仮説駆動分析の徹底 (複数仮説の並行検証)
|
||||
|
||||
**専門的報告形式**
|
||||
|
||||
```text
|
||||
Evidence-First 根本原因分析
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
分析信頼度: 高 / バイアス対策: 実施済み
|
||||
仮説検証マトリックス: XX% 確信度
|
||||
```
|
||||
|
||||
#### frontend (フロントエンド・UI/UX 専門家)
|
||||
|
||||
**Evidence-First フロントエンド開発**
|
||||
|
||||
- WCAG 2.1 アクセシビリティ準拠
|
||||
- Material Design・iOS HIG 公式ガイドライン準拠
|
||||
- ユーザー中心設計・デザインシステム標準適用
|
||||
- A/B テスト・ユーザー行動分析による検証
|
||||
|
||||
### 開発支援ロールの詳細
|
||||
|
||||
#### reviewer (コードレビュー専門家)
|
||||
|
||||
- 可読性・保守性・パフォーマンスの多角的評価
|
||||
- コーディング規約遵守チェック・リファクタリング提案
|
||||
- セキュリティ・アクセシビリティの横断的確認
|
||||
|
||||
#### architect (システムアーキテクト)
|
||||
|
||||
- Evidence-First 設計原則・MECE 分析による段階的思考
|
||||
- 進化的アーキテクチャ・複数視点評価 (技術・ビジネス・運用・ユーザー)
|
||||
- 公式アーキテクチャパターン・ベストプラクティス参照
|
||||
|
||||
#### qa (テストエンジニア)
|
||||
|
||||
- テストカバレッジ分析・E2E/統合/単体テスト戦略
|
||||
- テスト自動化提案・品質メトリクス設計
|
||||
|
||||
#### mobile (モバイル開発専門家)
|
||||
|
||||
- iOS HIG・Android Material Design 公式ガイドライン準拠
|
||||
- クロスプラットフォーム戦略・Touch-First 設計
|
||||
- ストア審査ガイドライン・モバイル特化 UX 最適化
|
||||
|
||||
#### backend (バックエンド・サーバーサイド専門家)
|
||||
|
||||
- RESTful/GraphQL API 設計・ドメイン駆動設計・クリーンアーキテクチャ
|
||||
- スケーラビリティ・耐障害性・パフォーマンス最適化
|
||||
- データベース最適化・キャッシュ戦略・信頼性向上
|
||||
|
||||
### ロール固有の議論特性
|
||||
|
||||
各ロールは専門分野に応じた独自の議論スタンス・論拠ソース・強みを持ちます。
|
||||
|
||||
#### security ロールの議論特性
|
||||
|
||||
- **スタンス**: 保守的アプローチ・リスク最小化優先・最悪ケース想定
|
||||
- **論拠**: OWASP ガイドライン・NIST フレームワーク・実際の攻撃事例
|
||||
- **強み**: リスク評価の精度・規制要件の深い知識・攻撃手法の包括的理解
|
||||
- **注意**: 過度な保守性・UX への配慮不足・実装コストの軽視
|
||||
|
||||
#### performance ロールの議論特性
|
||||
|
||||
- **スタンス**: データ駆動判断・効率性重視・ユーザー体験優先・継続的改善
|
||||
- **論拠**: Core Web Vitals・ベンチマーク結果・ユーザー行動データ・業界標準
|
||||
- **強み**: 定量的評価能力・ボトルネック特定の精度・ROI 分析
|
||||
- **注意**: セキュリティの軽視・保守性への配慮不足・計測偏重
|
||||
|
||||
#### analyzer ロールの議論特性
|
||||
|
||||
- **スタンス**: 証拠重視・仮説検証・構造的思考・バイアス除去
|
||||
- **論拠**: 実測データ・統計的手法・システム思考理論・認知バイアス研究
|
||||
- **強み**: 論理的分析能力・証拠評価の客観性・構造的問題の発見力
|
||||
- **注意**: 分析麻痺・完璧主義・データ万能主義・過度な懐疑主義
|
||||
|
||||
#### frontend ロールの議論特性
|
||||
|
||||
- **スタンス**: ユーザー中心・アクセシビリティ重視・デザイン原則準拠・体験価値優先
|
||||
- **論拠**: UX 調査・アクセシビリティ標準・デザインシステム・ユーザビリティテスト
|
||||
- **強み**: ユーザー視点・デザイン原則・アクセシビリティ・体験設計
|
||||
- **注意**: 技術制約の軽視・パフォーマンスへの配慮不足・実装複雑性
|
||||
|
||||
### マルチロール協調の効果
|
||||
|
||||
異なる議論特性を持つロールの組み合わせにより、バランスの取れた分析が可能:
|
||||
|
||||
#### 典型的な協調パターン
|
||||
|
||||
- **security + frontend**: セキュリティとユーザビリティのバランス
|
||||
- **performance + security**: 速度と安全性の両立
|
||||
- **analyzer + architect**: 問題分析と構造設計の統合
|
||||
- **reviewer + qa**: コード品質とテスト戦略の連携
|
||||
|
||||
## 高度なロール機能
|
||||
|
||||
### インテリジェントロール選択
|
||||
|
||||
- `/smart-review` : プロジェクト分析による自動ロール提案
|
||||
- `/role-help` : 状況に応じた最適ロール選択ガイド
|
||||
|
||||
### マルチロール協調
|
||||
|
||||
- `/multi-role <ロール 1>,<ロール 2>` : 複数ロール同時分析
|
||||
- `/role-debate <ロール 1>,<ロール 2>` : ロール間議論
|
||||
|
||||
### 使用例
|
||||
|
||||
#### 自動ロール提案
|
||||
|
||||
```bash
|
||||
/smart-review
|
||||
→ 現在の状況を分析して最適なロールを提案
|
||||
|
||||
/smart-review src/auth/
|
||||
→ 認証関連ファイルから security ロールを推奨
|
||||
```
|
||||
|
||||
#### 複数ロール分析
|
||||
|
||||
```bash
|
||||
/multi-role security,performance
|
||||
「この API を複数の視点で評価して」
|
||||
→ セキュリティとパフォーマンスの両面から統合分析
|
||||
|
||||
/role-debate frontend,security
|
||||
「2 段階認証の UX について議論して」
|
||||
→ ユーザビリティとセキュリティの観点で議論
|
||||
```
|
||||
|
||||
#### ロール選択に迷った場合
|
||||
|
||||
```bash
|
||||
/role-help "API が遅くてセキュリティも心配"
|
||||
→ 適切なアプローチ (multi-role や debate) を提案
|
||||
|
||||
/role-help compare frontend,mobile
|
||||
→ フロントエンドとモバイルロールの違いと使い分け
|
||||
```
|
||||
|
||||
## 注意事項
|
||||
|
||||
### ロール動作について
|
||||
|
||||
- ロールを切り替えると、Claude の **振る舞い・優先事項・分析手法・報告形式** が専門特化します
|
||||
- 各ロールは **Evidence-First アプローチ** で公式ガイドライン・実証済み手法を優先適用
|
||||
- `default` で通常モードに戻ります (ロール特化が解除されます)
|
||||
- ロールは現在のセッション内でのみ有効です
|
||||
|
||||
### 効果的な活用方法
|
||||
|
||||
- **単純な問題**: 単一ロールで十分な専門分析
|
||||
- **複雑な問題**: multi-role や role-debate で多角的分析が効果的
|
||||
- **迷った時**: smart-review や role-help をご利用ください
|
||||
- **継続的改善**: 同じロールでも新たな証拠・手法で分析精度が向上
|
||||
|
||||
### サブエージェント機能 (--agent オプション)
|
||||
|
||||
大規模な分析や独立した専門的処理が必要な場合、`--agent` オプションを使用してロールをサブエージェントとして実行できます。
|
||||
|
||||
#### メリット
|
||||
|
||||
- **独立コンテキスト**: メインの会話を妨げない
|
||||
- **並列実行**: 複数の分析を同時実行可能
|
||||
- **専門特化**: より深い分析と詳細なレポート
|
||||
- **自動委任の促進**: ロールの description に "use PROACTIVELY" や "MUST BE USED" が含まれている場合、より積極的な自動委任が有効化
|
||||
|
||||
#### 推奨される使用場面
|
||||
|
||||
```bash
|
||||
# セキュリティ: OWASP 全項目チェック、CVE 照合
|
||||
/role security --agent
|
||||
「全コードベースのセキュリティ監査」
|
||||
|
||||
# アナライザー: 大量ログの根本原因分析
|
||||
/role analyzer --agent
|
||||
「過去 1 週間のエラーログを分析」
|
||||
|
||||
# レビュアー: 大規模 PR の詳細レビュー
|
||||
/role reviewer --agent
|
||||
「PR #500 の 1000 行の変更をレビュー」
|
||||
```
|
||||
|
||||
#### 通常ロール vs サブエージェント
|
||||
|
||||
| 状況 | 推奨 | コマンド |
|
||||
| ------------ | ---------------- | ------------------------ |
|
||||
| 簡単な確認 | 通常ロール | `/role security` |
|
||||
| 大規模分析 | サブエージェント | `/role security --agent` |
|
||||
| 対話的作業 | 通常ロール | `/role frontend` |
|
||||
| 独立した監査 | サブエージェント | `/role qa --agent` |
|
||||
|
||||
### ロール設定の詳細
|
||||
|
||||
- 各ロールの詳細設定・專門知識・議論特性は `.claude/agents/roles/` ディレクトリ内で定義
|
||||
- Evidence-First 手法・認知バイアス対策も含む
|
||||
- ロール固有のトリガーフレーズで自動的に特化モードが有効化
|
||||
103
commands/screenshot.md
Normal file
103
commands/screenshot.md
Normal file
@@ -0,0 +1,103 @@
|
||||
## Screenshot
|
||||
|
||||
macOS でスクリーンショットを撮影し、画像を解析します。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
/screenshot [オプション]
|
||||
```
|
||||
|
||||
### オプション
|
||||
|
||||
- なし : ウィンドウを選択 (Claude がオプションを確認)
|
||||
- `--window` : ウィンドウを指定して撮影
|
||||
- `--full` : 画面全体を撮影
|
||||
- `--crop` : 範囲を選択して撮影
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# ウィンドウを撮影して解析
|
||||
/screenshot --window
|
||||
「撮影した画面を解析して」
|
||||
|
||||
# 範囲を選択して解析
|
||||
/screenshot --crop
|
||||
「選択した範囲の内容を説明して」
|
||||
|
||||
# 全画面を撮影して解析
|
||||
/screenshot --full
|
||||
「画面全体の構成を分析して」
|
||||
```
|
||||
|
||||
### Claude との連携
|
||||
|
||||
```bash
|
||||
# 特定の問題なし - 状況解析
|
||||
/screenshot --crop
|
||||
(Claude が自動的に画面の内容を解析し、要素や構成を説明)
|
||||
|
||||
# UI/UX の問題分析
|
||||
/screenshot --window
|
||||
「この UI の問題点と改善案を提案して」
|
||||
|
||||
# エラー解析
|
||||
/screenshot --window
|
||||
「このエラーメッセージの原因と解決方法を教えて」
|
||||
|
||||
# デザインレビュー
|
||||
/screenshot --full
|
||||
「このデザインを UX の観点から評価して」
|
||||
|
||||
# コード解析
|
||||
/screenshot --crop
|
||||
「このコードの問題点を指摘して」
|
||||
|
||||
# データ可視化の分析
|
||||
/screenshot --crop
|
||||
「このグラフから読み取れる傾向を分析して」
|
||||
```
|
||||
|
||||
### 詳細例
|
||||
|
||||
```bash
|
||||
# 複数の観点から分析
|
||||
/screenshot --window
|
||||
「この画面について以下を分析して:
|
||||
1. UI の一貫性
|
||||
2. アクセシビリティの問題
|
||||
3. 改善提案」
|
||||
|
||||
# 比較分析用に複数撮影
|
||||
/screenshot --window
|
||||
# (before の画像を保存)
|
||||
# 変更を加える
|
||||
/screenshot --window
|
||||
# (after の画像を保存)
|
||||
「before と after の画像を比較して、変更点と改善効果を分析して」
|
||||
|
||||
# 特定要素にフォーカス
|
||||
/screenshot --crop
|
||||
「選択したボタンのデザインが他の要素と調和しているか評価して」
|
||||
```
|
||||
|
||||
### 禁止事項
|
||||
|
||||
- **スクリーンショットを撮影していないのに「撮影しました」と言うことは禁止**
|
||||
- **存在しない画像ファイルの解析を試みることは禁止**
|
||||
- **`/screenshot` コマンドは実際のスクリーンショット撮影を行わない**
|
||||
|
||||
### 注意事項
|
||||
|
||||
- オプションを指定しない場合、以下の選択肢を提示してください:
|
||||
|
||||
```
|
||||
「どの方法でスクリーンショットを撮影しますか?
|
||||
1. ウィンドウを選択 (--window) → screencapture -W
|
||||
2. 画面全体 (--full) → screencapture -x
|
||||
3. 範囲を選択 (--crop) → screencapture -i」
|
||||
```
|
||||
|
||||
- ユーザーが screencapture コマンドを実行した後に画像解析を開始してください
|
||||
- 具体的な問題や観点を指定すると、より焦点を絞った分析が可能です
|
||||
66
commands/search-gemini.md
Normal file
66
commands/search-gemini.md
Normal file
@@ -0,0 +1,66 @@
|
||||
## Gemini Web Search
|
||||
|
||||
Gemini CLI で Web 検索を実行して最新情報を取得します。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
# Gemini CLI 経由で Web 検索 (必須)
|
||||
gemini --prompt "WebSearch: <検索クエリ>"
|
||||
```
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# Gemini CLI を使用
|
||||
gemini --prompt "WebSearch: React 19 新機能"
|
||||
gemini --prompt "WebSearch: TypeError Cannot read property of undefined 解決方法"
|
||||
```
|
||||
|
||||
### Claude との連携
|
||||
|
||||
```bash
|
||||
# ドキュメント検索と要約
|
||||
gemini --prompt "WebSearch: Next.js 14 App Router 公式ドキュメント"
|
||||
「検索結果を要約して主要な機能を説明して」
|
||||
|
||||
# エラー調査
|
||||
cat error.log
|
||||
gemini --prompt "WebSearch: [エラーメッセージ] 解決方法"
|
||||
「検索結果から最も適切な解決方法を提案して」
|
||||
|
||||
# 技術比較
|
||||
gemini --prompt "WebSearch: Rust vs Go performance benchmark 2024"
|
||||
「検索結果からパフォーマンスの違いをまとめて」
|
||||
```
|
||||
|
||||
### 詳細例
|
||||
|
||||
```bash
|
||||
# 複数ソースからの情報収集
|
||||
gemini --prompt "WebSearch: GraphQL best practices 2024 multiple sources"
|
||||
「検索結果から複数の信頼できるソースの情報をまとめて」
|
||||
|
||||
# 時系列での変化を調査
|
||||
gemini --prompt "WebSearch: JavaScript ES2015 ES2016 ES2017 ES2018 ES2019 ES2020 ES2021 ES2022 ES2023 ES2024 features"
|
||||
「各バージョンの主要な変更点を時系列でまとめて」
|
||||
|
||||
# 特定ドメインに絞った検索
|
||||
gemini --prompt "WebSearch: site:github.com Rust WebAssembly projects stars:>1000"
|
||||
「スター数の多い順に 10 個のプロジェクトをリストアップして」
|
||||
|
||||
# 最新のセキュリティ情報
|
||||
gemini --prompt "WebSearch: CVE-2024 Node.js vulnerabilities"
|
||||
「見つかった脆弱性の影響と対策をまとめて」
|
||||
```
|
||||
|
||||
### 禁止事項
|
||||
|
||||
- **Claude の組み込み WebSearch ツールの使用は禁止**
|
||||
- Web 検索が必要な場合は、必ず `gemini --prompt "WebSearch: ..."` を使用すること
|
||||
|
||||
### 注意事項
|
||||
|
||||
- **Gemini CLI が利用可能な場合は、必ず `gemini --prompt "WebSearch: ..."` を使用してください**
|
||||
- Web 検索結果は常に最新とは限りません
|
||||
- 重要な情報は公式ドキュメントや信頼できるソースで確認することをお勧めします
|
||||
1137
commands/semantic-commit.md
Normal file
1137
commands/semantic-commit.md
Normal file
File diff suppressed because it is too large
Load Diff
90
commands/sequential-thinking.md
Normal file
90
commands/sequential-thinking.md
Normal file
@@ -0,0 +1,90 @@
|
||||
## Sequential Thinking
|
||||
|
||||
動的で反復的な思考プロセスを通じて、複雑な問題を段階的に解決します。思考の途中で方向転換や見直しができる柔軟なアプローチです。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
# Claude に段階的思考を依頼
|
||||
「[課題] について sequential-thinking で検討して」
|
||||
```
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# アルゴリズム設計
|
||||
「効率的なキャッシュ戦略を sequential-thinking で設計して」
|
||||
|
||||
# 問題解決
|
||||
「データベースのパフォーマンス問題を sequential-thinking で解決して」
|
||||
|
||||
# 設計検討
|
||||
「リアルタイム通知システムの設計を sequential-thinking で検討して」
|
||||
```
|
||||
|
||||
### Claude との連携
|
||||
|
||||
```bash
|
||||
# 複雑な実装方針
|
||||
「認証システムの実装方針を sequential-thinking で検討して。OAuth2、JWT、セッション管理を考慮して」
|
||||
|
||||
# バグ原因分析
|
||||
「メモリリークの原因を sequential-thinking で分析して。コードレビューとプロファイリング結果を含めて」
|
||||
|
||||
# リファクタリング戦略
|
||||
cat src/complex_module.js
|
||||
「このモジュールのリファクタリング戦略を sequential-thinking で立案して」
|
||||
|
||||
# 技術選定
|
||||
「フロントエンドフレームワークの選択を sequential-thinking で分析して。プロジェクト要件と制約を考慮して」
|
||||
```
|
||||
|
||||
### 思考プロセス
|
||||
|
||||
1. **初期分析** - 問題の基本的な理解と分解
|
||||
2. **仮説生成** - 解決案の仮説を立てる
|
||||
3. **検証と修正** - 仮説を検証し、必要に応じて修正
|
||||
4. **分岐と探索** - 複数の解決パスを探索
|
||||
5. **統合と結論** - 最適解を導き出す
|
||||
|
||||
### 特徴
|
||||
|
||||
- **動的調整** - 思考の途中で方向転換可能
|
||||
- **仮説検証** - 仮説を立てて検証するサイクル
|
||||
- **分岐思考** - 複数の思考パスを同時に探索
|
||||
- **段階的洗練** - 段階的に解決案を洗練
|
||||
- **柔軟性** - 新たな情報に基づく方針変更
|
||||
|
||||
### 詳細例
|
||||
|
||||
```bash
|
||||
# 複雑なシステム設計
|
||||
「EC サイトのマイクロサービス設計を sequential-thinking で検討して。注文処理、在庫管理、決済の連携を含めて」
|
||||
|
||||
# セキュリティ設計
|
||||
「API セキュリティの設計を sequential-thinking で検討して。認証、認可、レート制限、監査ログを含めて」
|
||||
|
||||
# パフォーマンス最適化
|
||||
「大規模データ処理の最適化を sequential-thinking で検討して。メモリ使用量、処理速度、スケーラビリティを考慮して」
|
||||
|
||||
# 依存関係管理
|
||||
「モノレポの依存関係管理戦略を sequential-thinking で検討して。ビルド時間、デプロイ、テスト実行を含めて」
|
||||
```
|
||||
|
||||
### 注意事項
|
||||
|
||||
sequential-thinking は段階的に思考を深化させる必要がある複雑な問題に最適です。単純な質問や明確な答えがある場合は、通常の質問形式を使用してください。
|
||||
|
||||
### 実行例
|
||||
|
||||
```bash
|
||||
# 使用例
|
||||
「GraphQL スキーマの設計を sequential-thinking で検討して」
|
||||
|
||||
# 期待される動作
|
||||
# 1. 初期分析: GraphQL スキーマの基本要件を分析
|
||||
# 2. 仮説生成: 複数の設計パターンを検討
|
||||
# 3. 検証: 各パターンの長所・短所を検証
|
||||
# 4. 分岐: 必要に応じて新しいアプローチを探索
|
||||
# 5. 統合: 最適なスキーマ設計を提案
|
||||
```
|
||||
59
commands/show-plan.md
Normal file
59
commands/show-plan.md
Normal file
@@ -0,0 +1,59 @@
|
||||
## Show Plan
|
||||
|
||||
現在のセッションで実行中または実行したプランを表示します。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
/show-plan
|
||||
```
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# 現在のプランを確認
|
||||
/show-plan
|
||||
「実行中のプランを表示」
|
||||
|
||||
# プランがない場合
|
||||
/show-plan
|
||||
「現在のセッションにプランはありません」
|
||||
```
|
||||
|
||||
### 機能
|
||||
|
||||
- exit_plan_mode で作成されたプランを検出
|
||||
- 実装計画、実装内容、プランなどのキーワードを含む見出しを探索
|
||||
- プランの内容を整形して表示
|
||||
- プランがない場合は明確にその旨を通知
|
||||
|
||||
### Claude との連携
|
||||
|
||||
```bash
|
||||
# 実装途中でプランを確認
|
||||
「何を実装していたっけ?」
|
||||
/show-plan
|
||||
|
||||
# 複数のタスクを実行中
|
||||
「今のプランをもう一度確認させて」
|
||||
/show-plan
|
||||
|
||||
# プラン実行後の振り返り
|
||||
「さっき実行したプランの内容を見せて」
|
||||
/show-plan
|
||||
```
|
||||
|
||||
### 検出パターン
|
||||
|
||||
exit_plan_mode で生成されるプランの形式に基づいて、以下のパターンを検出:
|
||||
|
||||
- `##` で始まる見出し (計画、プラン、Plan を含む)
|
||||
- `### 変更内容`
|
||||
- `### 実装内容`
|
||||
- `### 実装計画`
|
||||
- `### 1.` などの番号付き見出し
|
||||
|
||||
### 注意事項
|
||||
|
||||
- 現在のセッション内のプランのみ表示 (過去のセッションは含まない)
|
||||
- 最新のプランを優先的に表示
|
||||
174
commands/smart-review.md
Normal file
174
commands/smart-review.md
Normal file
@@ -0,0 +1,174 @@
|
||||
## Smart Review
|
||||
|
||||
現在の状況を分析し、最適なロール・アプローチを自動提案するコマンド。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
/smart-review # 現在のディレクトリを分析
|
||||
/smart-review <ファイル/ディレクトリ> # 特定対象を分析
|
||||
```
|
||||
|
||||
### 自動判定ロジック
|
||||
|
||||
### ファイル拡張子による判定
|
||||
|
||||
- `package.json`, `*.tsx`, `*.jsx`, `*.css`, `*.scss` → **frontend**
|
||||
- `Dockerfile`, `docker-compose.yml`, `*.yaml` → **architect**
|
||||
- `*.test.js`, `*.spec.ts`, `test/`, `__tests__/` → **qa**
|
||||
- `*.rs`, `Cargo.toml`, `performance/` → **performance**
|
||||
|
||||
### セキュリティ関連ファイル検出
|
||||
|
||||
- `auth.js`, `security.yml`, `.env`, `config/auth/` → **security**
|
||||
- `login.tsx`, `signup.js`, `jwt.js` → **security + frontend**
|
||||
- `api/auth/`, `middleware/auth/` → **security + architect**
|
||||
|
||||
### 複合判定パターン
|
||||
|
||||
- `mobile/` + `*.swift`, `*.kt`, `react-native/` → **mobile**
|
||||
- `webpack.config.js`, `vite.config.js`, `large-dataset/` → **performance**
|
||||
- `components/` + `responsive.css` → **frontend + mobile**
|
||||
- `api/` + `auth/` → **security + architect**
|
||||
|
||||
### エラー・問題分析
|
||||
|
||||
- スタックトレース、`error.log`, `crash.log` → **analyzer**
|
||||
- `memory leak`, `high CPU`, `slow query` → **performance + analyzer**
|
||||
- `SQL injection`, `XSS`, `CSRF` → **security + analyzer**
|
||||
|
||||
### 提案パターン
|
||||
|
||||
### 単一ロール提案
|
||||
|
||||
```bash
|
||||
$ /smart-review src/auth/login.js
|
||||
→ 「認証ファイルを検出しました」
|
||||
→ 「security ロールでの分析を推奨します」
|
||||
→ 「実行しますか? [y]es / [n]o / [m]ore options」
|
||||
```
|
||||
|
||||
### 複数ロール提案
|
||||
|
||||
```bash
|
||||
$ /smart-review src/mobile/components/
|
||||
→ 「📱🎨 モバイル + フロントエンド要素を検出」
|
||||
→ 「推奨アプローチ:」
|
||||
→ 「[1] mobile ロール単体」
|
||||
→ 「[2] frontend ロール単体」
|
||||
→ 「[3] multi-role mobile,frontend」
|
||||
→ 「[4] role-debate mobile,frontend」
|
||||
```
|
||||
|
||||
### 問題分析時の提案
|
||||
|
||||
```bash
|
||||
$ /smart-review error.log
|
||||
→ 「⚠️ エラーログを検出しました」
|
||||
→ 「analyzer ロールで根本原因分析を開始します」
|
||||
→ 「[自動実行] /role analyzer」
|
||||
|
||||
$ /smart-review slow-api.log
|
||||
→ 「🐌 パフォーマンス問題を検出」
|
||||
→ 「推奨: [1]/role performance [2]/role-debate performance,analyzer」
|
||||
```
|
||||
|
||||
### 複雑な設計決定時の提案
|
||||
|
||||
```bash
|
||||
$ /smart-review architecture-design.md
|
||||
→ 「🏗️🔒⚡ アーキテクチャ + セキュリティ + パフォーマンス要素検出」
|
||||
→ 「複雑な設計決定のため、議論形式を推奨します」
|
||||
→ 「[推奨] /role-debate architect,security,performance」
|
||||
→ 「[代替] /multi-role architect,security,performance」
|
||||
```
|
||||
|
||||
### 提案ロジックの詳細
|
||||
|
||||
### 優先度判定
|
||||
|
||||
1. **Security** - 認証・認可・暗号化関連は最優先
|
||||
2. **Critical Errors** - システム停止・データ損失は緊急
|
||||
3. **Architecture** - 大規模変更・技術選定は慎重検討
|
||||
4. **Performance** - ユーザー体験に直結
|
||||
5. **Frontend/Mobile** - UI/UX 改善
|
||||
6. **QA** - 品質保証・テスト関連
|
||||
|
||||
### 議論推奨条件
|
||||
|
||||
- 3 つ以上のロールが関連する場合
|
||||
- セキュリティ vs パフォーマンスのトレードオフがある場合
|
||||
- アーキテクチャの大幅変更が含まれる場合
|
||||
- モバイル + Web の両方に影響がある場合
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# 現在のディレクトリを分析
|
||||
/smart-review
|
||||
「最適なロールとアプローチを提案して」
|
||||
|
||||
# 特定ファイルを分析
|
||||
/smart-review src/auth/login.js
|
||||
「このファイルに最適なレビュー方法を提案して」
|
||||
|
||||
# エラーログを分析
|
||||
/smart-review error.log
|
||||
「このエラーの解決に最適なアプローチを提案して」
|
||||
```
|
||||
|
||||
### 実裁例
|
||||
|
||||
### プロジェクト全体の分析
|
||||
|
||||
```bash
|
||||
$ /smart-review
|
||||
→ 「📊 プロジェクト分析中...」
|
||||
→ 「React + TypeScript プロジェクトを検出」
|
||||
→ 「認証機能 + API + モバイル対応を確認」
|
||||
→ 「」
|
||||
→ 「💡 推奨ワークフロー:」
|
||||
→ 「1. security で認証系チェック」
|
||||
→ 「2. frontend で UI/UX 評価」
|
||||
→ 「3. mobile でモバイル最適化確認」
|
||||
→ 「4. architect で全体設計レビュー」
|
||||
→ 「」
|
||||
→ 「自動実行しますか? [y]es / [s]elect role / [c]ustom」
|
||||
```
|
||||
|
||||
### 特定問題の分析
|
||||
|
||||
```bash
|
||||
$ /smart-review "JWT の有効期限をどう設定すべきか"
|
||||
→ 「🤔 技術的な設計判断を検出」
|
||||
→ 「複数の専門観点が必要な問題です」
|
||||
→ 「」
|
||||
→ 「推奨アプローチ:」
|
||||
→ 「/role-debate security,performance,frontend」
|
||||
→ 「理由: セキュリティ・パフォーマンス・UX のバランスが重要」
|
||||
```
|
||||
|
||||
### Claude との連携
|
||||
|
||||
```bash
|
||||
# ファイル内容と組み合わせた分析
|
||||
cat src/auth/middleware.js
|
||||
/smart-review
|
||||
「このファイルの内容を含めてセキュリティ観点で分析して」
|
||||
|
||||
# エラーと組み合わせた分析
|
||||
npm run build 2>&1 | tee build-error.log
|
||||
/smart-review build-error.log
|
||||
「ビルドエラーの解決方法を提案して」
|
||||
|
||||
# 設計相談
|
||||
/smart-review
|
||||
「React Native と Progressive Web App のどちらを選ぶべきか議論して」
|
||||
```
|
||||
|
||||
### 注意事項
|
||||
|
||||
- 提案は参考情報です。最終的な判断はユーザーが行ってください
|
||||
- 複雑な問題ほど議論形式 (role-debate) を推奨します
|
||||
- 単純な問題は single role で十分な場合が多いです
|
||||
- セキュリティ関連は必ず専門ロールでの確認を推奨します
|
||||
549
commands/spec.md
Normal file
549
commands/spec.md
Normal file
@@ -0,0 +1,549 @@
|
||||
## Spec
|
||||
|
||||
**「コードを書く前に構造を与える」** - Kiro の spec-driven development に完全準拠
|
||||
|
||||
従来のコード生成ツールとは異なり、開発の混沌に構造を与えることに重点を置いた Kiro の仕様駆動開発を実現。わずかな要件入力から、プロダクトマネージャーレベルの詳細な仕様と実装可能な設計まで段階的に展開し、**プロトタイプから本番環境**まで一貫した品質を保証します。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
# Claude に Spec Mode を依頼 (最小限の要件入力)
|
||||
「[機能説明] の spec を作成して」
|
||||
|
||||
# Kiro 式段階的展開:
|
||||
# 1. 簡単な要件 → 詳細なユーザーストーリー自動生成
|
||||
# 2. EARS 記法による構造化された要件記述
|
||||
# 3. 段階的対話を通じた仕様の精緻化
|
||||
# 4. 3 つの独立したファイルを生成:
|
||||
# - requirements.md: EARS 記法による要件定義
|
||||
# - design.md: Mermaid 図・TypeScript インターフェース含む設計
|
||||
# - tasks.md: ベストプラクティス自動適用の実装計画
|
||||
```
|
||||
|
||||
### 実証された効果 (Kiro 実績)
|
||||
|
||||
**2 日間でセキュアファイル共有アプリ**
|
||||
|
||||
```bash
|
||||
「ファイル共有システム (暗号化対応) の spec を作成して」
|
||||
→ 2 日間で本番レベルの暗号化ファイル共有アプリケーション完成
|
||||
→ セキュリティベストプラクティス自動適用
|
||||
→ 追加プロンプト不要
|
||||
```
|
||||
|
||||
**1 晩でゲーム開発 (未経験者)**
|
||||
|
||||
```bash
|
||||
「2D パズルゲームの spec を作成して」
|
||||
→ ゲーム開発未経験のオープンソース開発者
|
||||
→ 1 晩でゲーム作成完了
|
||||
→ 実装ロジックは Kiro が処理、開発者は創造性に集中
|
||||
```
|
||||
|
||||
**週末でプロトタイプ→本番**
|
||||
|
||||
```bash
|
||||
「EC サイトの商品管理システムの spec を作成して」
|
||||
→ 1 週末でコンセプトから動作するプロトタイプまで
|
||||
→ プロトタイプから本番環境への一貫した品質
|
||||
→ spec-driven development による構造化アプローチ
|
||||
```
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# 新機能の spec 作成 (最小限入力)
|
||||
「商品レビューシステム
|
||||
- 星評価機能
|
||||
- コメント投稿
|
||||
- 画像アップロード」
|
||||
|
||||
# システム機能の spec 作成
|
||||
「ユーザー認証
|
||||
- OAuth 対応
|
||||
- 多要素認証」
|
||||
|
||||
# API 機能の spec 作成
|
||||
「決済システム API
|
||||
- Stripe 連携
|
||||
- セキュリティ重視」
|
||||
```
|
||||
|
||||
### Claude との連携
|
||||
|
||||
```bash
|
||||
# 複雑な機能 spec
|
||||
「チャット機能の spec を作成して。WebSocket、リアルタイム通知、履歴管理を含めて」
|
||||
|
||||
# データベース連携機能 spec
|
||||
「EC サイトの在庫管理機能の spec を作成して。商品追加、在庫更新、アラート機能を含めて」
|
||||
|
||||
# フロントエンド機能 spec
|
||||
「React ダッシュボードの spec を作成して。グラフ表示、フィルター、エクスポート機能を含めて」
|
||||
|
||||
# バックエンド機能 spec
|
||||
「RESTful API の spec を作成して。認証、バリデーション、ログ記録を含めて」
|
||||
```
|
||||
|
||||
### Spec Mode の特徴
|
||||
|
||||
**段階的対話ワークフロー**
|
||||
|
||||
- Kiro の本来の価値である段階的議論を完全再現
|
||||
- 各フェーズでユーザーと協力的に仕様を洗練
|
||||
- 疑問点の解消、選択肢の議論、承認プロセスを経てファイル生成
|
||||
|
||||
**3 段階の対話的展開**
|
||||
|
||||
- **Phase 1**: Requirements Discovery → 議論 → 承認 → `requirements.md` 生成
|
||||
- **Phase 2**: Design Exploration → 議論 → 承認 → `design.md` 生成
|
||||
- **Phase 3**: Implementation Planning → 議論 → 承認 → `tasks.md` 生成
|
||||
|
||||
**動的な仕様策定**
|
||||
|
||||
- 要件の曖昧さを対話で解消
|
||||
- 技術選択肢の提示と議論
|
||||
- トレードオフの説明と判断確認
|
||||
|
||||
### 詳細例
|
||||
|
||||
```bash
|
||||
# 複雑なシステム機能
|
||||
「オンライン決済システムの spec を作成して。Stripe 連携、セキュリティ、エラーハンドリングを含めて」
|
||||
|
||||
# フロントエンド機能
|
||||
「React コンポーネントの spec を作成して。状態管理、プロパティ設計、テストを含めて」
|
||||
|
||||
# バックエンド機能
|
||||
「GraphQL API の spec を作成して。スキーマ設計、リゾルバー、認証を含めて」
|
||||
|
||||
# DevOps 機能
|
||||
「CI/CD パイプラインの spec を作成して。テスト自動化、デプロイメント、監視を含めて」
|
||||
```
|
||||
|
||||
### 段階的対話ワークフロー (Phase by Phase)
|
||||
|
||||
#### Phase 1: Requirements Discovery & Discussion
|
||||
|
||||
**1. 最小限入力からの自動拡張 (Kiro 式)**
|
||||
|
||||
```text
|
||||
ユーザー: 「ユーザー管理システム
|
||||
- ログイン機能
|
||||
- プロフィール編集
|
||||
- 管理者権限」
|
||||
|
||||
Claude: 「要件から詳細なユーザーストーリーを生成します。
|
||||
この理解で正しいですか?
|
||||
|
||||
自動生成されたユーザーストーリー:
|
||||
- ユーザー登録・認証機能 (OAuth 対応)
|
||||
- プロフィール管理機能 (アバター、設定)
|
||||
- 権限管理機能 (RBAC)
|
||||
- パスワードリセット機能
|
||||
- セキュリティ監査ログ
|
||||
|
||||
明示されていない詳細を補完しました。他に必要な機能はありますか?」
|
||||
```
|
||||
|
||||
**2. EARS 記法による構造化要件記述**
|
||||
|
||||
```text
|
||||
Claude: 「Kiro の EARS 記法で要件を構造化します:
|
||||
|
||||
EARS 記法による要件定義:
|
||||
|
||||
WHEN ユーザーがログインを試行する際
|
||||
GIVEN 正しいメールアドレスとパスワードを入力した場合
|
||||
THEN システムは認証を確認する
|
||||
AND 成功時はダッシュボードにリダイレクトする
|
||||
|
||||
WHILE ユーザーがプロフィール編集画面にいる間
|
||||
THE SYSTEM SHALL リアルタイムでバリデーションを実行する
|
||||
AND 変更内容をプレビュー表示する
|
||||
|
||||
WHERE 管理者権限が必要な機能に
|
||||
IS アクセスが試行された場合
|
||||
THE SYSTEM SHALL 権限レベルを確認する
|
||||
AND 不十分な場合はアクセス拒否する」
|
||||
```
|
||||
|
||||
**3. エッジケース・セキュリティ要件の自動補完**
|
||||
|
||||
```text
|
||||
Claude: 「Kiro のベストプラクティスに基づき、以下のケースも考慮しました:
|
||||
|
||||
セキュリティ要件 (自動補完):
|
||||
- ブルートフォース攻撃対策
|
||||
- セッション管理とタイムアウト
|
||||
- CSRF 保護と XSS 対策
|
||||
- パスワード強度要件
|
||||
|
||||
エッジケース (自動検出):
|
||||
- 同時ログイン制限
|
||||
- アカウントロック機能
|
||||
- データ移行時の整合性確保
|
||||
- 大量リクエスト時の負荷分散
|
||||
|
||||
これらの要件は適切ですか?」
|
||||
```
|
||||
|
||||
**5. Phase 1 完了と承認**
|
||||
|
||||
```text
|
||||
Claude: 「Requirements Phase が完了しました。
|
||||
requirements.md を生成してよろしいですか?」
|
||||
→ 「次に進んで」→ requirements.md 生成
|
||||
```
|
||||
|
||||
#### Phase 2: Design Exploration & Discussion
|
||||
|
||||
**1. コードベース分析 + 自動設計提案 (Kiro 式)**
|
||||
|
||||
```text
|
||||
Claude: 「既存コードベースを分析し、最適なアーキテクチャを提案します:
|
||||
|
||||
コードベース分析結果:
|
||||
- 認証: JWT + Express.js(v4.18.x)
|
||||
- データベース: PostgreSQL(v14+)
|
||||
- フロントエンド: React + TypeScript(v18+)
|
||||
- 既存パターン: Repository パターン、Service 層分離
|
||||
|
||||
Kiro 推奨アーキテクチャ:
|
||||
- Clean Architecture 準拠
|
||||
- Domain-Driven Design 要素
|
||||
- CQRS パターンの部分的適用
|
||||
- 自動化されたセキュリティベストプラクティス
|
||||
|
||||
この設計で進めますか?」
|
||||
```
|
||||
|
||||
**2. Mermaid 図による視覚的設計**
|
||||
|
||||
```text
|
||||
Claude: 「システム設計を Mermaid 図で自動生成しました:
|
||||
|
||||
自動生成されたアーキテクチャ図:
|
||||
|
||||
graph TB
|
||||
Client[React Client] --> API[Express API Gateway]
|
||||
API --> Auth[Auth Service]
|
||||
API --> User[User Service]
|
||||
API --> Profile[Profile Service]
|
||||
|
||||
Auth --> AuthDB[(Auth Database)]
|
||||
User --> UserDB[(User Database)]
|
||||
Profile --> ProfileDB[(Profile Database)]
|
||||
|
||||
Auth --> JWT[JWT Service]
|
||||
Auth --> OAuth[OAuth Provider]
|
||||
|
||||
データフロー図も生成しますか?」
|
||||
```
|
||||
|
||||
**3. TypeScript インターフェース自動生成**
|
||||
|
||||
```text
|
||||
Claude: 「設計に基づいて TypeScript インターフェースを自動生成します:
|
||||
|
||||
自動生成 TypeScript インターフェース:
|
||||
|
||||
// Domain entities
|
||||
interface User {
|
||||
readonly id: UserId;
|
||||
readonly email: Email;
|
||||
readonly profile: UserProfile;
|
||||
readonly auth: AuthSettings;
|
||||
readonly permissions: Permission[];
|
||||
readonly createdAt: Date;
|
||||
readonly updatedAt: Date;
|
||||
}
|
||||
|
||||
interface UserProfile {
|
||||
readonly displayName: string;
|
||||
readonly avatar: AvatarUrl;
|
||||
readonly preferences: UserPreferences;
|
||||
}
|
||||
|
||||
interface AuthSettings {
|
||||
readonly passwordHash: PasswordHash;
|
||||
readonly mfaEnabled: boolean;
|
||||
readonly lastLoginAt: Date;
|
||||
readonly failedAttempts: number;
|
||||
}
|
||||
|
||||
// Use cases
|
||||
interface UserRepository {
|
||||
findById(id: UserId): Promise<User | null>;
|
||||
findByEmail(email: Email): Promise<User | null>;
|
||||
save(user: User): Promise<void>;
|
||||
}
|
||||
|
||||
interface AuthenticationService {
|
||||
authenticate(credentials: LoginCredentials): Promise<AuthResult>;
|
||||
refreshToken(token: RefreshToken): Promise<AccessToken>;
|
||||
}
|
||||
|
||||
このインターフェース設計で進めますか?」
|
||||
```
|
||||
|
||||
**4. Phase 2 完了と承認**
|
||||
|
||||
```text
|
||||
Claude: 「Design Phase が完了しました。
|
||||
design.md を生成してよろしいですか?」
|
||||
→ 「次に進んで」→ design.md 生成
|
||||
```
|
||||
|
||||
#### Phase 3: Implementation Planning & Discussion
|
||||
|
||||
**1. ベストプラクティス自動適用 (Kiro 式)**
|
||||
|
||||
```text
|
||||
Claude: 「Kiro のベストプラクティスを自動適用した実装計画を生成しました:
|
||||
|
||||
自動生成された実装戦略:
|
||||
|
||||
1. セキュリティファースト開発
|
||||
- OWASP Top 10 対策の自動組み込み
|
||||
- 暗号化・ハッシュ化の自動実装
|
||||
- セキュリティテストの自動生成
|
||||
|
||||
2. クリーンアーキテクチャの強制
|
||||
- レイヤー分離の自動実装
|
||||
- 依存性逆転の自動適用
|
||||
- テスタブルな設計の強制
|
||||
|
||||
3. パフォーマンス最適化
|
||||
- キャッシュ戦略の自動実装
|
||||
- データベース最適化
|
||||
- 非同期処理の活用
|
||||
|
||||
このアプローチで進めますか?」
|
||||
```
|
||||
|
||||
**2. 品質チェックポイント自動設定**
|
||||
|
||||
```text
|
||||
Claude: 「各実装段階での品質チェックポイントを自動設定しました:
|
||||
|
||||
自動品質保証プロセス:
|
||||
|
||||
Phase 3a: バックエンド実装
|
||||
|
||||
- [ ] セキュリティスキャン (SAST/DAST)
|
||||
- [ ] API 仕様テスト (OpenAPI 準拠)
|
||||
- [ ] パフォーマンステスト (負荷・レスポンス)
|
||||
- [ ] 脆弱性スキャン (依存関係・CVE)
|
||||
|
||||
Phase 3b: フロントエンド実装
|
||||
|
||||
- [ ] アクセシビリティテスト (WCAG 2.1 AA)
|
||||
- [ ] ブラウザ互換性テスト
|
||||
- [ ] レスポンシブデザイン検証
|
||||
- [ ] セキュリティヘッダー確認
|
||||
|
||||
Phase 3c: 統合・デプロイ
|
||||
|
||||
- [ ] E2E テストスイート
|
||||
- [ ] CI/CD パイプライン設定
|
||||
- [ ] モニタリング・ログ設定
|
||||
- [ ] 本番環境セキュリティ監査
|
||||
|
||||
すべて自動実行されます。追加の品質基準はありますか?」
|
||||
```
|
||||
|
||||
**3. 依存関係とリスク軽減の自動分析**
|
||||
|
||||
```text
|
||||
Claude: 「実装順序とリスク軽減策を自動分析しました:
|
||||
|
||||
最適化された実装順序:
|
||||
|
||||
Week 1: インフラ・セキュリティ基盤
|
||||
|
||||
- データベース設計・スキーマ作成
|
||||
- 認証基盤 (JWT + セッション管理)
|
||||
- セキュリティミドルウェア実装
|
||||
- 基本的な API エンドポイント
|
||||
|
||||
Week 2: コア機能実装
|
||||
|
||||
- ユーザー管理機能
|
||||
- プロフィール管理機能
|
||||
- 権限管理システム
|
||||
- バリデーション・エラーハンドリング
|
||||
|
||||
Week 3: 高度な機能・最適化
|
||||
|
||||
- 多要素認証実装
|
||||
- 監査ログ機能
|
||||
- パフォーマンス最適化
|
||||
- フロントエンド統合
|
||||
|
||||
自動検出されたリスク軽減策:
|
||||
|
||||
- 多要素認証: 段階的導入 (SMS→アプリ認証)
|
||||
- セッション管理: Redis クラスター構成
|
||||
- 大量アクセス: レート制限 + CDN 活用
|
||||
- データ整合性: トランザクション管理強化
|
||||
|
||||
この計画で問題ありませんか?」
|
||||
```
|
||||
|
||||
**4. Phase 3 完了と承認**
|
||||
|
||||
```text
|
||||
Claude: 「Implementation Planning Phase が完了しました。
|
||||
tasks.md を生成してよろしいですか?」
|
||||
→ 「次に進んで」→ tasks.md 生成
|
||||
```
|
||||
|
||||
### Kiro 特有の機能
|
||||
|
||||
**EARS 記法 (Easy Approach to Requirements Syntax)**
|
||||
|
||||
```markdown
|
||||
# Kiro 標準の EARS 記法パターン
|
||||
|
||||
WHEN [状況・トリガー]
|
||||
GIVEN [前提条件]
|
||||
THEN [システムの動作]
|
||||
AND [追加の動作]
|
||||
|
||||
WHILE [状態・プロセス]
|
||||
THE SYSTEM SHALL [必須動作]
|
||||
AND [関連動作]
|
||||
|
||||
WHERE [機能・コンポーネント]
|
||||
IS [条件・状態]
|
||||
THE SYSTEM SHALL [対応動作]
|
||||
```
|
||||
|
||||
**自動生成機能**
|
||||
|
||||
- **Mermaid 図**: アーキテクチャ・データフロー図の自動生成
|
||||
- **TypeScript インターフェース**: 設計に基づく型定義自動作成
|
||||
- **ベストプラクティス**: セキュリティ・パフォーマンス対策の自動組み込み
|
||||
- **品質チェックポイント**: 段階別品質基準の自動設定
|
||||
|
||||
**hooks 連携**
|
||||
|
||||
- ファイル保存時の自動品質チェック
|
||||
- コード標準の自動適用
|
||||
- セキュリティスキャンの自動実行
|
||||
- OWASP Top 10 対策の自動検証
|
||||
|
||||
**プロトタイプ→本番品質保証**
|
||||
|
||||
- 構造化アプローチによる一貫した設計
|
||||
- セキュリティファースト開発の強制
|
||||
- スケーラブルアーキテクチャの自動適用
|
||||
- 継続的品質管理の組み込み
|
||||
|
||||
### 注意事項
|
||||
|
||||
**適用範囲**
|
||||
|
||||
- Spec Mode は機能実装に最適化
|
||||
- 単純な修正や小規模な変更の場合は通常の実装形式を使用
|
||||
- 新規機能開発や複雑な機能改修に推奨
|
||||
|
||||
**品質保証**
|
||||
|
||||
- 各段階での完了基準を明確化
|
||||
- 実装前の設計レビュー
|
||||
- テストとアクセシビリティを含む包括的な品質基準
|
||||
|
||||
**実行上の注意**
|
||||
|
||||
- 要件の曖昧さを解消してから設計段階へ
|
||||
- 設計完了後に実装タスクを生成
|
||||
- 各段階での承認プロセスを重視
|
||||
|
||||
### トリガーフレーズとコントロール
|
||||
|
||||
#### 段階的ワークフロー制御
|
||||
|
||||
**開始トリガー**
|
||||
|
||||
- 「[機能名] の spec を作成して」
|
||||
- 「spec 駆動で [機能名] を開発したい」
|
||||
- 「仕様書から [機能名] を設計して」
|
||||
|
||||
**フェーズ進行制御**
|
||||
|
||||
- **「次に進んで」**: 現在のフェーズを完了してファイル生成、次フェーズへ
|
||||
- **「修正して」**: 現在のフェーズ内で内容を調整・改善
|
||||
- **「やり直して」**: 現在のフェーズを最初からやり直し
|
||||
- **「詳しく説明して」**: より詳細な説明や選択肢を提示
|
||||
- **「スキップして」**: 現フェーズをスキップして次へ (非推奨)
|
||||
|
||||
**ファイル生成タイミング**
|
||||
|
||||
```text
|
||||
Phase 1 完了 → 「次に進んで」 → requirements.md 生成
|
||||
Phase 2 完了 → 「次に進んで」 → design.md 生成
|
||||
Phase 3 完了 → 「次に進んで」 → tasks.md 生成
|
||||
```
|
||||
|
||||
### 実行例 (段階的フロー)
|
||||
|
||||
```bash
|
||||
# 使用例
|
||||
ユーザー: 「ユーザー管理システムの spec を作成して」
|
||||
|
||||
# Phase 1: Requirements Discovery
|
||||
Claude: [要件の確認と議論開始]
|
||||
ユーザー: [応答・議論・修正]
|
||||
Claude: 「Requirements Phase が完了しました。次に進んでよろしいですか?」
|
||||
ユーザー: 「次に進んで」
|
||||
→ requirements.md 生成
|
||||
|
||||
# Phase 2: Design Exploration
|
||||
Claude: [設計の提案と議論開始]
|
||||
ユーザー: [技術選択・アーキテクチャ議論]
|
||||
Claude: 「Design Phase が完了しました。次に進んでよろしいですか?」
|
||||
ユーザー: 「次に進んで」
|
||||
→ design.md 生成
|
||||
|
||||
# Phase 3: Implementation Planning
|
||||
Claude: [実装計画の議論開始]
|
||||
ユーザー: [優先度・リスク・工数の議論]
|
||||
Claude: 「Implementation Phase が完了しました。次に進んでよろしいですか?」
|
||||
ユーザー: 「次に進んで」
|
||||
→ tasks.md 生成
|
||||
|
||||
# 完了
|
||||
Claude: 「spec 駆動開発の準備が完了しました。実装を開始できます。」
|
||||
```
|
||||
|
||||
### /plan との違い
|
||||
|
||||
| 特徴 | /plan | /spec |
|
||||
| -------- | ---------------------- | ------------------------------------------------------------- |
|
||||
| 対象 | 一般的な実装計画 | 機能仕様駆動開発 |
|
||||
| 出力形式 | 単一の計画ドキュメント | 3 つの独立したファイル (requirements.md、design.md、tasks.md) |
|
||||
| 要件定義 | 基本的な要件整理 | EARS 記法による詳細な受け入れ基準 |
|
||||
| 設計 | 技術選定中心 | コードベース分析ベース |
|
||||
| 実装 | 一般的なタスク分解 | 依存関係を考慮したシーケンス |
|
||||
| 品質保証 | 基本的なテスト戦略 | 包括的な品質要件 (テスト、アクセシビリティ、パフォーマンス) |
|
||||
| 同期 | 静的な計画 | 動的な spec 更新 |
|
||||
|
||||
### 推奨ユースケース
|
||||
|
||||
**spec 使用推奨**
|
||||
|
||||
- 新機能開発
|
||||
- 複雑な機能改修
|
||||
- API 設計
|
||||
- データベース設計
|
||||
- UI/UX 実装
|
||||
|
||||
**plan 使用推奨**
|
||||
|
||||
- システム全体の設計
|
||||
- インフラ構築
|
||||
- リファクタリング
|
||||
- 技術選定
|
||||
- アーキテクチャ変更
|
||||
186
commands/style-ai-writing.md
Normal file
186
commands/style-ai-writing.md
Normal file
@@ -0,0 +1,186 @@
|
||||
## AI Writing Check
|
||||
|
||||
AI が生成した文章の機械的なパターンを検出し、より自然な日本語への改善提案を行います。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
/ai-writing-check [オプション]
|
||||
```
|
||||
|
||||
### オプション
|
||||
|
||||
- なし : 現在のファイルまたは選択したテキストを分析
|
||||
- `--file <path>` : 特定のファイルを分析
|
||||
- `--dir <path>` : ディレクトリ内のファイルを一括分析
|
||||
- `--severity <level>` : 検出レベル (all/high/medium)
|
||||
- `--fix` : 検出されたパターンを自動修正
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# ファイルの AI 臭さをチェック
|
||||
cat README.md
|
||||
/ai-writing-check
|
||||
「この文書の AI 臭さをチェックして改善案を提示して」
|
||||
|
||||
# 特定ファイルの分析
|
||||
/ai-writing-check --file docs/guide.md
|
||||
「AI っぽい表現を検出して自然な表現に修正提案して」
|
||||
|
||||
# プロジェクト全体のスキャン
|
||||
/ai-writing-check --dir . --severity high
|
||||
「プロジェクト内の重要な AI 臭さ問題だけを報告して」
|
||||
```
|
||||
|
||||
### 検出パターン
|
||||
|
||||
#### 1. リスト書式の機械的パターン
|
||||
|
||||
```markdown
|
||||
検出される例:
|
||||
|
||||
- **重要**: これは重要な項目です
|
||||
- 完了した項目 (チェックマーク付き)
|
||||
- ホットな話題 (炎絵文字付き)
|
||||
- 開始準備完了 (ロケット絵文字付き)
|
||||
|
||||
改善例:
|
||||
|
||||
- 重要な項目: これは重要な項目です
|
||||
- 完了した項目
|
||||
- 注目の話題
|
||||
- 開始準備完了
|
||||
```
|
||||
|
||||
#### 2. 誇張的・ハイプ表現
|
||||
|
||||
```markdown
|
||||
検出される例:
|
||||
革命的な技術で業界を変えます。
|
||||
これは完全に問題を解決します。
|
||||
魔法のように動作します。
|
||||
|
||||
改善例:
|
||||
効果的な技術で業界に変化をもたらします。
|
||||
多くの問題を解決します。
|
||||
スムーズに動作します。
|
||||
```
|
||||
|
||||
#### 3. 機械的な強調パターン
|
||||
|
||||
```markdown
|
||||
検出される例:
|
||||
**アイデア**: 新しい提案があります (電球絵文字付き)
|
||||
**注意**: 重要な警告事項 (警告絵文字付き)
|
||||
|
||||
改善例:
|
||||
アイデア: 新しい提案があります
|
||||
注意事項: 重要な警告事項
|
||||
```
|
||||
|
||||
#### 4. 冗長なテクニカルライティング
|
||||
|
||||
```markdown
|
||||
検出される例:
|
||||
まず最初に設定を行います。
|
||||
このツールを使用することができます。
|
||||
大幅に性能が向上します。
|
||||
|
||||
改善例:
|
||||
まず設定を行います。
|
||||
このツールを使用できます。
|
||||
性能が 30% 向上します。
|
||||
```
|
||||
|
||||
### Claude との連携
|
||||
|
||||
```bash
|
||||
# 文書全体の AI 臭さ分析
|
||||
cat article.md
|
||||
/ai-writing-check
|
||||
「以下の観点で分析して改善案を提示:
|
||||
1. 機械的な表現の検出
|
||||
2. 自然な日本語への修正提案
|
||||
3. 優先度別の改善リスト」
|
||||
|
||||
# 特定パターンにフォーカス
|
||||
/ai-writing-check --file blog.md
|
||||
「特に誇張表現と冗長な表現に注目して改善提案して」
|
||||
|
||||
# 複数ファイルの一括チェック
|
||||
find . -name "*.md" -type f
|
||||
/ai-writing-check --dir docs/
|
||||
「ドキュメント全体の AI 臭さを分析してサマリーを作成」
|
||||
```
|
||||
|
||||
### 詳細例
|
||||
|
||||
```bash
|
||||
# 改善前後の比較
|
||||
/ai-writing-check --file draft.md
|
||||
「AI 臭い表現を検出して、以下の形式で提示:
|
||||
- 問題箇所 (行番号付き)
|
||||
- 問題の種類と理由
|
||||
- 具体的な改善案
|
||||
- 改善による効果」
|
||||
|
||||
# 自動修正モード
|
||||
/ai-writing-check --file report.md --fix
|
||||
「検出されたパターンを自動修正して結果を報告」
|
||||
|
||||
# プロジェクトの AI 臭さレポート
|
||||
/ai-writing-check --dir . --severity all
|
||||
「プロジェクト全体の AI 臭さを分析して:
|
||||
1. 統計情報 (パターン別の検出数)
|
||||
2. 最も問題のあるファイル TOP 5
|
||||
3. 改善優先度マトリックス
|
||||
4. 段階的な改善計画」
|
||||
```
|
||||
|
||||
### 高度な使用例
|
||||
|
||||
```bash
|
||||
# カスタムルールの適用
|
||||
/ai-writing-check --file spec.md
|
||||
「技術仕様書として以下の追加基準でチェック:
|
||||
- 曖昧な表現 (適切な、必要に応じて)
|
||||
- 具体性の欠如 (高速な → 具体的な数値)
|
||||
- 一貫性のない用語使用」
|
||||
|
||||
# CI/CD 統合用のチェック
|
||||
/ai-writing-check --dir docs/ --severity high
|
||||
「GitHub Actions で実行可能な形式で結果を出力:
|
||||
- エラー数とファイル名
|
||||
- 修正が必要な行番号
|
||||
- exit code の設定」
|
||||
|
||||
# スタイルガイド準拠チェック
|
||||
/ai-writing-check --file manual.md
|
||||
「会社のスタイルガイドに基づいて追加チェック:
|
||||
- 敬語の使用 (です・ます調の統一)
|
||||
- 専門用語の適切な使用
|
||||
- 読者への配慮」
|
||||
```
|
||||
|
||||
### 注意事項
|
||||
|
||||
- AI 臭さの判定は文脈によって異なるため、提案は参考として扱ってください
|
||||
- 技術文書、ブログ、マニュアルなど、文書の種類に応じて基準を調整します
|
||||
- すべての提案を受け入れる必要はなく、適切なものを選択してください
|
||||
- `--fix` オプションは検出されたパターンを自動的に修正します
|
||||
|
||||
### コマンド実行時の動作
|
||||
|
||||
`/ai-writing-check` コマンドを実行すると、Claude は以下の処理を行います:
|
||||
|
||||
1. **パターン検出**: 指定されたファイルやテキストから AI 臭いパターンを検出
|
||||
2. **具体的な修正提案**: 各問題に対して行番号付きで修正案を提示
|
||||
3. **--fix モード**: 検出されたパターンを自動修正し、結果をサマリー表示
|
||||
4. **レポート生成**: 検出数、改善優先度、修正前後の比較を提供
|
||||
|
||||
Claude は実際のファイル内容を読み込み、textlint-rule-preset-ai-writing のルールに基づいて分析を実行します。
|
||||
|
||||
### 参考
|
||||
|
||||
このコマンドは [textlint-rule-preset-ai-writing](https://github.com/textlint-ja/textlint-rule-preset-ai-writing) のルールセットを参考に作成されています。AI が生成した文章の機械的なパターンを検出し、より自然な表現を促すための textlint ルールプリセットです。
|
||||
303
commands/task.md
Normal file
303
commands/task.md
Normal file
@@ -0,0 +1,303 @@
|
||||
## Task
|
||||
|
||||
専用エージェントを起動して、複雑な検索・調査・分析タスクを自律的に実行します。複数のツールを組み合わせた大規模な情報処理で、コンテキスト効率性を重視します。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
# Claude に Task を依頼
|
||||
「[課題] を Task で調査して」
|
||||
|
||||
# バックグラウンド実行 (長時間タスク用)
|
||||
/task --background 「[継続的な監視・分析タスク]」
|
||||
/task -b 「[長時間実行タスク]」
|
||||
```
|
||||
|
||||
### オプション
|
||||
|
||||
- `--background` または `-b` : バックグラウンドで継続実行 (長時間監視・分析時推奨)
|
||||
- タスクをバックグラウンドプロセスとして実行し、メインの会話を妨げません
|
||||
- 進捗状況は定期的に報告され、いつでも確認・停止可能です
|
||||
|
||||
### Task の特徴
|
||||
|
||||
**自律的実行**
|
||||
|
||||
- 複数のツールを組み合わせて自動実行
|
||||
- 段階的な情報収集と分析
|
||||
- 結果の統合と構造化された報告
|
||||
|
||||
**効率的な情報処理**
|
||||
|
||||
- コンテキスト消費の最適化
|
||||
- 大規模なファイル検索・解析
|
||||
- 外部情報源からのデータ収集
|
||||
|
||||
**品質保証**
|
||||
|
||||
- 情報源の信頼性チェック
|
||||
- 複数視点からの検証
|
||||
- 欠落情報の自動補完
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# 複雑なコードベース調査
|
||||
「この機能がどのファイルに実装されているか Task で調査して」
|
||||
|
||||
# 大規模なファイル検索
|
||||
「設定ファイルの不整合を Task で特定して」
|
||||
|
||||
# 外部情報の収集
|
||||
「最新の AI 技術トレンドを Task で調査して」
|
||||
```
|
||||
|
||||
### バックグラウンド実行例
|
||||
|
||||
```bash
|
||||
# 継続的なセキュリティ監査
|
||||
/task --background 「全コードベースの脆弱性を継続的に監査して」
|
||||
→ バックグラウンドで定期的にセキュリティチェックを実行
|
||||
→ 新たな脆弱性を検出次第、報告
|
||||
|
||||
# パフォーマンス監視
|
||||
/task -b 「パフォーマンスメトリクスを 1 時間監視して」
|
||||
→ 指定時間、バックグラウンドでメトリクスを収集
|
||||
→ 異常値検出時に即座に通知
|
||||
|
||||
# ログの継続監視
|
||||
/task --background 「エラーログを監視して重大な問題を検出して」
|
||||
→ ログファイルをリアルタイムで監視
|
||||
→ パターンマッチングで問題を早期発見
|
||||
```
|
||||
|
||||
### Claude との連携
|
||||
|
||||
```bash
|
||||
# 複雑な問題分析
|
||||
「メモリリークの原因を Task で分析して。プロファイリング結果とログを含めて」
|
||||
|
||||
# 依存関係調査
|
||||
「この npm パッケージの脆弱性を Task で調査して」
|
||||
|
||||
# 競合分析
|
||||
「競合サービスの API 仕様を Task で調査して」
|
||||
|
||||
# アーキテクチャ分析
|
||||
「このマイクロサービスの依存関係を Task で分析して」
|
||||
```
|
||||
|
||||
### 他のコマンドとの使い分け
|
||||
|
||||
#### Task vs 他のコマンド
|
||||
|
||||
| コマンド | 主な用途 | 実行方式 | 情報収集 | バックグラウンド |
|
||||
| ------------------- | ---------------- | ---------------- | ------------ | ---------------- |
|
||||
| **Task** | 調査・分析・検索 | 自律的実行 | 複数ソース | ✅ 対応 |
|
||||
| **Task -b** | 継続監視・分析 | バックグラウンド | 複数ソース | ✅ 専用 |
|
||||
| ultrathink | 深い思考・判断 | 構造化思考 | 既存知識中心 | ❌ |
|
||||
| sequential-thinking | 問題解決・設計 | 段階的思考 | 必要に応じて | ❌ |
|
||||
| plan | 実装計画立案 | 承認プロセス | 要件分析 | ❌ |
|
||||
|
||||
#### 判断フローチャート
|
||||
|
||||
```text
|
||||
情報収集が必要?
|
||||
├─ Yes → 複数ソース・大規模?
|
||||
│ ├─ Yes → 継続的・長時間?
|
||||
│ │ ├─ Yes → **Task --background**
|
||||
│ │ └─ No → **Task**
|
||||
│ └─ No → 通常の質問
|
||||
└─ No → 深い思考が必要?
|
||||
├─ Yes → ultrathink/sequential-thinking
|
||||
└─ No → 通常の質問
|
||||
```
|
||||
|
||||
### 有効なケース・不要なケース
|
||||
|
||||
**有効なケース (通常の Task)**
|
||||
|
||||
- 複雑なコードベース調査 (依存関係、アーキテクチャ分析)
|
||||
- 大規模なファイル検索 (特定の実装パターン、設定ファイル)
|
||||
- 外部情報の収集と整理 (技術トレンド、ライブラリ調査)
|
||||
- 複数のソースからの情報統合 (ログ解析、メトリクス分析)
|
||||
- 反復的な調査作業 (セキュリティ監査、技術負債調査)
|
||||
- コンテキスト消費を避けたい大規模分析
|
||||
|
||||
**有効なケース (Task --background)**
|
||||
|
||||
- 継続的なセキュリティ監査 (新規脆弱性の検出)
|
||||
- 長時間のパフォーマンス監視 (メトリクス収集・異常検知)
|
||||
- リアルタイムログ監視 (エラーパターンの早期発見)
|
||||
- 定期的なコードベース分析 (品質メトリクスの追跡)
|
||||
- CI/CD パイプラインの監視 (ビルド・テスト結果の追跡)
|
||||
- 外部 API の継続的な状態チェック
|
||||
|
||||
**不要なケース**
|
||||
|
||||
- 単純な質問や既存知識で回答可能な内容
|
||||
- 短時間で完了する単発の作業
|
||||
- 対話的な確認・相談が必要な作業
|
||||
- 実装や設計の判断 (plan や思考系コマンドが適切)
|
||||
|
||||
### カテゴリ別詳細例
|
||||
|
||||
#### システム分析・調査
|
||||
|
||||
```bash
|
||||
# 複雑なシステム分析
|
||||
「EC サイトのボトルネックを Task で特定して。データベース、API、フロントエンドの全体を調査」
|
||||
|
||||
# アーキテクチャ分析
|
||||
「このマイクロサービスの依存関係を Task で分析して。API 通信とデータフローを含めて」
|
||||
|
||||
# 技術負債調査
|
||||
「レガシーコードの技術負債を Task で分析して。リファクタリング優先度を含めて」
|
||||
```
|
||||
|
||||
#### セキュリティ・コンプライアンス
|
||||
|
||||
```bash
|
||||
# セキュリティ監査
|
||||
「このアプリケーションの脆弱性を Task で調査して。OWASP Top 10 に基づいて」
|
||||
|
||||
# ライセンス調査
|
||||
「プロジェクトの依存関係のライセンス問題を Task で調査して」
|
||||
|
||||
# 設定ファイル監査
|
||||
「セキュリティ設定の不整合を Task で特定して。環境ごとの差分を含めて」
|
||||
```
|
||||
|
||||
#### パフォーマンス・最適化
|
||||
|
||||
```bash
|
||||
# パフォーマンス分析
|
||||
「アプリケーションの重いクエリを Task で特定して。実行計画と最適化案を含めて」
|
||||
|
||||
# リソース使用量調査
|
||||
「メモリリークの原因を Task で調査して。プロファイリング結果とコード解析を含めて」
|
||||
|
||||
# バンドルサイズ分析
|
||||
「フロントエンドのバンドルサイズ問題を Task で調査して。最適化提案を含めて」
|
||||
```
|
||||
|
||||
#### 外部情報収集
|
||||
|
||||
```bash
|
||||
# 技術トレンド調査
|
||||
「2024 年の JavaScript フレームワーク動向を Task で調査して」
|
||||
|
||||
# 競合分析
|
||||
「競合サービスの API 仕様を Task で調査して。機能比較表を含めて」
|
||||
|
||||
# ライブラリ評価
|
||||
「State 管理ライブラリの比較を Task で調査して。パフォーマンスと学習コストを含めて」
|
||||
```
|
||||
|
||||
### 実行フローと品質保証
|
||||
|
||||
#### Task の実行フロー
|
||||
|
||||
```text
|
||||
1. 初期分析
|
||||
├─ 課題の分解と調査範囲の特定
|
||||
├─ 必要なツールと情報源の選定
|
||||
└─ 実行計画の立案
|
||||
|
||||
2. 情報収集
|
||||
├─ ファイル検索・コード解析
|
||||
├─ 外部情報の収集
|
||||
└─ データの構造化
|
||||
|
||||
3. 分析・統合
|
||||
├─ 収集した情報の関連性分析
|
||||
├─ パターンや問題点の特定
|
||||
└─ 仮説の検証
|
||||
|
||||
4. 報告・提案
|
||||
├─ 結果の構造化
|
||||
├─ 改善提案の作成
|
||||
└─ 次のアクションの提示
|
||||
```
|
||||
|
||||
#### 品質保証
|
||||
|
||||
- **情報源の信頼性チェック**: 複数ソースでの事実確認
|
||||
- **網羅性の確認**: 調査対象の漏れがないかチェック
|
||||
- **一貫性の検証**: 矛盾する情報の整合性確認
|
||||
- **実用性の評価**: 提案の実現可能性と効果の評価
|
||||
|
||||
### エラーハンドリングと制約事項
|
||||
|
||||
#### よくある制約
|
||||
|
||||
- **外部 API の利用制限**: レート制限や認証エラー
|
||||
- **大容量ファイルの処理制限**: メモリやタイムアウトの制約
|
||||
- **アクセス権限の問題**: ファイルやディレクトリへのアクセス制限
|
||||
|
||||
#### エラー時の対処
|
||||
|
||||
- **部分的な結果報告**: 取得できた情報のみでの分析
|
||||
- **代替手段の提案**: 制約下での代替調査方法
|
||||
- **段階的実行**: 大規模タスクの分割実行
|
||||
|
||||
### 注意事項
|
||||
|
||||
- Task は複雑で自律的な調査・分析タスクに最適です
|
||||
- 単純な質問や即座の回答が必要な場合は、通常の質問形式を使用してください
|
||||
- 調査結果は参考情報として扱い、重要な判断は必ず検証してください
|
||||
- 外部情報の収集時は、情報の新しさと正確性に注意してください
|
||||
|
||||
### バックグラウンド実行の注意事項
|
||||
|
||||
**--background オプション使用時**
|
||||
|
||||
- Claude が Task エージェント内で `run_in_background: true` パラメータを使用して実行します
|
||||
- バックグラウンドプロセスには固有の ID (bash_1, bash_2 等) が割り当てられます
|
||||
- 進捗状況は定期的に自動報告されます
|
||||
- `「バックグラウンドタスクの状況を確認」` でいつでも状態確認可能
|
||||
- `「バックグラウンドタスク [ID] を停止」` で任意のタスクを停止可能
|
||||
- セッション終了時は必ずバックグラウンドタスクを停止してください
|
||||
|
||||
**内部動作**
|
||||
|
||||
```json
|
||||
// Claude が --background オプション検出時に自動適用
|
||||
{
|
||||
"tool": "Bash",
|
||||
"command": "監視コマンド",
|
||||
"run_in_background": true,
|
||||
"description": "バックグラウンドで継続実行"
|
||||
}
|
||||
```
|
||||
|
||||
**推奨される使用パターン**
|
||||
|
||||
```bash
|
||||
# 開始
|
||||
/task --background 「パフォーマンスメトリクスを 1 時間監視」
|
||||
→ "bash_1 でバックグラウンド実行開始"
|
||||
|
||||
# 確認
|
||||
「bash_1 の状況は?」
|
||||
→ 現在の進捗と結果を表示
|
||||
|
||||
# 停止
|
||||
「bash_1 を停止して」
|
||||
→ バックグラウンドタスクを終了
|
||||
```
|
||||
|
||||
### 実行例
|
||||
|
||||
```bash
|
||||
# 使用例
|
||||
「GraphQL スキーマの問題点を Task で調査して」
|
||||
|
||||
# 期待される動作
|
||||
# 1. 専用エージェントが起動
|
||||
# 2. GraphQL 関連ファイルの検索
|
||||
# 3. スキーマ定義の解析
|
||||
# 4. ベストプラクティスとの比較
|
||||
# 5. 問題点の特定と改善提案
|
||||
# 6. 構造化された報告書の作成
|
||||
```
|
||||
185
commands/tech-debt.md
Normal file
185
commands/tech-debt.md
Normal file
@@ -0,0 +1,185 @@
|
||||
## Tech Debt
|
||||
|
||||
プロジェクトの技術的負債を定量的に分析し、健全性スコアと開発効率への影響を可視化します。トレンド分析により改善状況を追跡し、時間的コストを算出して優先順位付けされた改善計画を作成します。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
# プロジェクトの構成を確認して技術的負債を分析
|
||||
ls -la
|
||||
「このプロジェクトの技術的負債を分析して改善計画を作成して」
|
||||
```
|
||||
|
||||
### プロジェクト健全性ダッシュボード
|
||||
|
||||
```text
|
||||
プロジェクト健全性スコア: 72/100
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
📊 カテゴリ別スコア
|
||||
├─ 依存関係の鮮度: ████████░░ 82% (最新: 45/55)
|
||||
├─ ドキュメント充実度: ███░░░░░░░ 35% (README, API 文書不足)
|
||||
├─ テストカバレッジ: ██████░░░░ 65% (目標: 80%)
|
||||
├─ セキュリティ: ███████░░░ 78% (脆弱性: 2 件 Medium)
|
||||
├─ アーキテクチャ: ██████░░░░ 60% (循環依存: 3 箇所)
|
||||
└─ コード品質: ███████░░░ 70% (複雑度高: 12 ファイル)
|
||||
|
||||
📈 トレンド (過去 30 日)
|
||||
├─ 総合スコア: 68 → 72 (+4) ↗️
|
||||
├─ 改善項目: 12 件 ✅
|
||||
├─ 新規負債: 3 件 ⚠️
|
||||
├─ 解消負債: 8 件 🎉
|
||||
└─ 改善速度: +0.13/日
|
||||
|
||||
⏱️ 負債の時間的影響
|
||||
├─ 開発速度低下: -20% (新機能開発が通常の 1.25 倍の時間)
|
||||
├─ バグ修正時間: +15% (平均修正時間 2h → 2.3h)
|
||||
├─ コードレビュー: +30% (複雑性による理解時間増加)
|
||||
├─ オンボーディング: +50% (新メンバーの理解に要する時間)
|
||||
└─ 累積遅延時間: 週 40 時間相当
|
||||
|
||||
🎯 改善による期待効果 (時間ベース)
|
||||
├─ 即座の効果: 開発速度 +10% (1 週間後)
|
||||
├─ 短期効果: バグ率 -25% (1 ヶ月後)
|
||||
├─ 中期効果: 開発速度 +30% (3 ヶ月後)
|
||||
├─ 長期効果: メンテナンス時間 -50% (6 ヶ月後)
|
||||
└─ ROI: 投資 40 時間 → 回収 120 時間 (3 ヶ月)
|
||||
```
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# 健全性スコアの詳細分析
|
||||
find . -name "*.js" -o -name "*.ts" | xargs wc -l | sort -rn | head -10
|
||||
「プロジェクト健全性スコアを算出して、カテゴリ別に評価して」
|
||||
|
||||
# TODO/FIXME の負債インパクト分析
|
||||
grep -r "TODO\|FIXME\|HACK\|XXX\|WORKAROUND" . --exclude-dir=node_modules --exclude-dir=.git
|
||||
「これらの TODO を負債インパクト (時間×重要度) で評価して」
|
||||
|
||||
# 依存関係の健全性チェック
|
||||
ls -la | grep -E "package.json|Cargo.toml|pubspec.yaml|go.mod|requirements.txt"
|
||||
「依存関係の鮮度スコアを算出し、アップデートのリスクと効果を分析して」
|
||||
```
|
||||
|
||||
### Claude との連携
|
||||
|
||||
```bash
|
||||
# 包括的な技術的負債分析
|
||||
ls -la && find . -name "*.md" -maxdepth 2 -exec head -20 {} \;
|
||||
「このプロジェクトの技術的負債を以下の観点で分析して:
|
||||
1. コード品質 (複雑度、重複、保守性)
|
||||
2. 依存関係の健全性
|
||||
3. セキュリティリスク
|
||||
4. パフォーマンス問題
|
||||
5. テストカバレッジ不足」
|
||||
|
||||
# アーキテクチャの負債分析
|
||||
find . -type d -name "src" -o -name "lib" -o -name "app" | head -10 | xargs ls -la
|
||||
「アーキテクチャレベルの技術的負債を特定し、リファクタリング計画を提案して」
|
||||
|
||||
# 優先順位付けされた改善計画
|
||||
「技術的負債を以下の基準で評価して表形式で提示:
|
||||
- 影響度 (高/中/低)
|
||||
- 修正コスト (時間)
|
||||
- 技術的リスク (システム障害、データ損失の可能性)
|
||||
- 改善による時間削減効果
|
||||
- 推奨実施時期」
|
||||
```
|
||||
|
||||
### 詳細例
|
||||
|
||||
```bash
|
||||
# プロジェクトタイプの自動検出と分析
|
||||
find . -maxdepth 2 -type f \( -name "package.json" -o -name "Cargo.toml" -o -name "pubspec.yaml" -o -name "go.mod" -o -name "pom.xml" \)
|
||||
「検出されたプロジェクトタイプに基づいて、以下を分析:
|
||||
1. 言語・フレームワーク固有の技術的負債
|
||||
2. ベストプラクティスからの逸脱
|
||||
3. モダナイゼーションの機会
|
||||
4. 段階的な改善戦略」
|
||||
|
||||
# コードの品質メトリクス分析
|
||||
find . -type f -name "*" | grep -E "\.(js|ts|py|rs|go|dart|kotlin|swift|java)$" | wc -l
|
||||
「プロジェクトのコード品質を分析し、以下のメトリクスを提示:
|
||||
- 循環的複雑度が高い関数
|
||||
- 重複コードの検出
|
||||
- 長すぎるファイル/関数
|
||||
- 適切なエラーハンドリングの欠如」
|
||||
|
||||
# セキュリティ負債の検出
|
||||
grep -r "password\|secret\|key\|token" . --exclude-dir=.git --exclude-dir=node_modules | grep -v ".env.example"
|
||||
「セキュリティに関する技術的負債を検出し、修正優先度と対策を提案して」
|
||||
|
||||
# テスト不足の分析
|
||||
find . -type f \( -name "*test*" -o -name "*spec*" \) | wc -l && find . -type f -name "*.md" | xargs grep -l "test"
|
||||
「テストカバレッジの技術的負債を分析し、テスト戦略を提案して」
|
||||
```
|
||||
|
||||
### 負債の優先順位マトリクス
|
||||
|
||||
```text
|
||||
優先度 = (影響度 × 発生頻度) ÷ 修正コスト
|
||||
```
|
||||
|
||||
| 優先度 | 開発への影響 | 修正コスト | 時間削減効果 | 投資対効果 | 対応期限 |
|
||||
| ------------------- | ------------ | ---------- | ------------ | ----------------- | ---------- |
|
||||
| **[P0] 今すぐ対応** | 高 | 低 | > 5 倍 | 投資 1h→削減 5h+ | 即座 |
|
||||
| **[P1] 今週中** | 高 | 中 | 2-5 倍 | 投資 1h→削減 2-5h | 1 週間以内 |
|
||||
| **[P2] 今月中** | 低 | 高 | 1-2 倍 | 投資 1h→削減 1-2h | 1 ヶ月以内 |
|
||||
| **[P3] 四半期中** | 低 | 低 | < 1 倍 | 投資=削減時間 | 3 ヶ月以内 |
|
||||
|
||||
### 負債タイプ別の評価基準
|
||||
|
||||
| 負債タイプ | 検出方法 | 開発への影響 | 修正時間 |
|
||||
| ---------------------- | ------------------------- | ------------------------------ | -------- |
|
||||
| **アーキテクチャ負債** | 循環依存、密結合 | 変更時影響範囲大、テスト困難 | 40-80h |
|
||||
| **セキュリティ負債** | CVE スキャン、OWASP | 脆弱性リスク、コンプライアンス | 8-40h |
|
||||
| **パフォーマンス負債** | N+1、メモリリーク | 応答時間増加、リソース消費 | 16-40h |
|
||||
| **テスト負債** | カバレッジ < 60% | バグ検出遅延、品質不安定 | 20-60h |
|
||||
| **ドキュメント負債** | README 不足、API 文書なし | オンボーディング時間増加 | 8-24h |
|
||||
| **依存関係負債** | 2 年以上未更新 | セキュリティリスク、互換性問題 | 4-16h |
|
||||
| **コード品質負債** | 複雑度 > 10 | 理解・修正時間増加 | 2-8h |
|
||||
|
||||
### 技術的負債の影響度算出
|
||||
|
||||
```text
|
||||
影響度 = Σ(各要素の重み × 測定値)
|
||||
|
||||
📊 測定可能な影響指標:
|
||||
├─ 開発速度への影響
|
||||
│ ├─ コード理解時間: +X% (複雑度に比例)
|
||||
│ ├─ 変更時の影響範囲: Y ファイル (結合度で測定)
|
||||
│ └─ テスト実行時間: Z 分 (CI/CD パイプライン)
|
||||
│
|
||||
├─ 品質への影響
|
||||
│ ├─ バグ発生率: 複雑度 10 毎に +25%
|
||||
│ ├─ レビュー時間: 行数 × 複雑度係数
|
||||
│ └─ テスト不足リスク: カバレッジ 60% 未満で高リスク
|
||||
│
|
||||
└─ チーム効率への影響
|
||||
├─ オンボーディング時間: ドキュメント不足で +100%
|
||||
├─ 知識の属人化: 単一貢献者率 >80% で要注意
|
||||
└─ コード重複による修正箇所: 重複率 × 変更頻度
|
||||
```
|
||||
|
||||
### 時間ベースの ROI 計算
|
||||
|
||||
```text
|
||||
ROI = (削減時間 - 投資時間) ÷ 投資時間 × 100
|
||||
|
||||
例:循環依存の解消
|
||||
├─ 投資時間: 16 時間 (リファクタリング)
|
||||
├─ 削減効果 (月次):
|
||||
│ ├─ コンパイル時間: -10 分/日 × 20 日 = 200 分
|
||||
│ ├─ デバッグ時間: -2 時間/週 × 4 週 = 8 時間
|
||||
│ └─ 新機能追加: -30% 時間短縮 = 12 時間
|
||||
├─ 月次削減時間: 23.3 時間
|
||||
└─ 3 ヶ月 ROI: (70 - 16) ÷ 16 × 100 = 337%
|
||||
```
|
||||
|
||||
### 注意事項
|
||||
|
||||
- プロジェクトの言語やフレームワークを自動検出し、それに応じた分析を行います
|
||||
- 健全性スコアは 0-100 点で評価し、70 点以上を健全、50 点以下を要改善とします
|
||||
- 時間的コストと改善効果を具体的に算出し、データに基づいた意思決定を支援します
|
||||
- 金銭換算が必要な場合は、チームの平均時給やプロジェクト固有の係数を別途指定してください
|
||||
242
commands/token-efficient.md
Normal file
242
commands/token-efficient.md
Normal file
@@ -0,0 +1,242 @@
|
||||
# Token Efficiency Mode
|
||||
|
||||
AI の応答を圧縮して、コンテキスト使用量を 30-50% 削減する効率化モードです。
|
||||
|
||||
## 概要
|
||||
|
||||
Token Efficiency Mode は、視覚的シンボルと略語システムを活用して、Claude の応答を圧縮します。
|
||||
**生成されるコードの品質や内容は一切変更されません**。変わるのは説明の仕方だけです。
|
||||
|
||||
## 使用方法
|
||||
|
||||
```bash
|
||||
# モード有効化
|
||||
「Token Efficiency Mode で応答して」
|
||||
「--uc モードで」
|
||||
「簡潔モードで」
|
||||
```
|
||||
|
||||
## 動作原理
|
||||
|
||||
### 1. シンボル体系
|
||||
|
||||
#### ロジック & フロー
|
||||
|
||||
| シンボル | 意味 | 使用例 |
|
||||
| -------- | ---------------------------- | ------------------------------------ |
|
||||
| → | 〜につながる、〜を引き起こす | `auth.js:45 → 🛡️ セキュリティリスク` |
|
||||
| ⇒ | 〜に変換 | `input ⇒ validated_output` |
|
||||
| ← | ロールバック、戻す | `migration ← rollback` |
|
||||
| ⇄ | 双方向 | `sync ⇄ remote` |
|
||||
| & | かつ、結合 | `🛡️ security & ⚡ performance` |
|
||||
| \| | または、区切り | `react\|vue\|angular` |
|
||||
| : | 定義、指定 | `scope: file\|module` |
|
||||
| » | 次に、シーケンス | `build » test » deploy` |
|
||||
| ∴ | したがって | `tests ❌ ∴ code broken` |
|
||||
| ∵ | なぜなら | `slow ∵ O(n²) algorithm` |
|
||||
|
||||
#### ステータス & 進捗
|
||||
|
||||
| シンボル | 意味 | 用途 |
|
||||
| -------- | ------------ | -------------- |
|
||||
| ✅ | 完了、成功 | タスク正常終了 |
|
||||
| ❌ | 失敗、エラー | 即座の対応必要 |
|
||||
| ⚠️ | 警告 | レビュー推奨 |
|
||||
| 🔄 | 進行中 | 現在アクティブ |
|
||||
| ⏳ | 待機中 | 後で実行予定 |
|
||||
| 🚨 | 緊急、重要 | 高優先度 |
|
||||
|
||||
#### 技術ドメイン
|
||||
|
||||
| シンボル | 分野 | 用途 |
|
||||
| -------- | -------------- | -------------------- |
|
||||
| ⚡ | パフォーマンス | 速度、最適化 |
|
||||
| 🔍 | 分析 | 検索、調査 |
|
||||
| 🔧 | 設定 | セットアップ、ツール |
|
||||
| 🛡️ | セキュリティ | 保護、安全性 |
|
||||
| 📦 | デプロイ | パッケージ、バンドル |
|
||||
| 🎨 | デザイン | UI、フロントエンド |
|
||||
| 🏗️ | アーキテクチャ | システム構造 |
|
||||
| 🗄️ | データベース | データ永続化 |
|
||||
| ⚙️ | バックエンド | サーバー処理 |
|
||||
| 🧪 | テスト | 品質保証 |
|
||||
|
||||
### 2. 略語システム
|
||||
|
||||
#### システム & アーキテクチャ
|
||||
|
||||
- `cfg` → configuration(設定)
|
||||
- `impl` → implementation(実装)
|
||||
- `arch` → architecture(アーキテクチャ)
|
||||
- `perf` → performance(パフォーマンス)
|
||||
- `ops` → operations(運用)
|
||||
- `env` → environment(環境)
|
||||
|
||||
#### 開発プロセス
|
||||
|
||||
- `req` → requirements(要件)
|
||||
- `deps` → dependencies(依存関係)
|
||||
- `val` → validation(検証)
|
||||
- `auth` → authentication(認証)
|
||||
- `docs` → documentation(ドキュメント)
|
||||
- `std` → standards(標準)
|
||||
|
||||
#### 品質 & 分析
|
||||
|
||||
- `qual` → quality(品質)
|
||||
- `sec` → security(セキュリティ)
|
||||
- `err` → error(エラー)
|
||||
- `rec` → recovery(回復)
|
||||
- `sev` → severity(重要度)
|
||||
- `opt` → optimization(最適化)
|
||||
|
||||
## 実例比較
|
||||
|
||||
### 例 1: エラー報告
|
||||
|
||||
**通常モード (92 文字)**
|
||||
|
||||
```text
|
||||
認証システムのユーザー検証関数の 45 行目でセキュリティの脆弱性が見つかりました。
|
||||
```
|
||||
|
||||
**Token Efficient(39 文字)**
|
||||
|
||||
```text
|
||||
auth.js:45 → 🛡️ sec vuln in user val()
|
||||
```
|
||||
|
||||
### 例 2: ビルド状況
|
||||
|
||||
**通常モード (145 文字)**
|
||||
|
||||
```text
|
||||
ビルドプロセスが正常に完了しました。現在テストを実行中で、その後デプロイメントを行います。
|
||||
```
|
||||
|
||||
**Token Efficient(35 文字)**
|
||||
|
||||
```text
|
||||
build ✅ » test 🔄 » deploy ⏳
|
||||
```
|
||||
|
||||
### 例 3: パフォーマンス分析
|
||||
|
||||
**通常モード (98 文字)**
|
||||
|
||||
```text
|
||||
パフォーマンス分析の結果、アルゴリズムが O(n²) の計算量のため処理が遅いことが判明しました。
|
||||
```
|
||||
|
||||
**Token Efficient(42 文字)**
|
||||
|
||||
```text
|
||||
⚡ perf: slow ∵ O(n²) → optimize to O(n)
|
||||
```
|
||||
|
||||
## 活用シーン
|
||||
|
||||
### ✅ 効果的な場面
|
||||
|
||||
- **長時間のデバッグセッション**: 履歴を保持しながら効率的に
|
||||
- **大規模コードレビュー**: 多数のファイルを簡潔に分析
|
||||
- **CI/CD モニタリング**: リアルタイムステータス更新
|
||||
- **プロジェクト進捗報告**: 複数タスクの状態を一覧化
|
||||
- **エラー追跡**: 問題の連鎖を視覚的に表現
|
||||
|
||||
### ❌ 避けるべき場面
|
||||
|
||||
- 初心者への説明
|
||||
- 詳細なドキュメント作成
|
||||
- 初回の要件定義
|
||||
- 非技術者とのコミュニケーション
|
||||
|
||||
## 実装例
|
||||
|
||||
### デバッグセッション
|
||||
|
||||
```text
|
||||
[14:23] breakpoint → vars: {user: null, token: expired}
|
||||
[14:24] step → auth.validate() ❌
|
||||
[14:25] check → token.exp < Date.now() ∴ expired
|
||||
[14:26] fix → refresh() → ✅
|
||||
[14:27] continue → main flow 🔄
|
||||
```
|
||||
|
||||
### ファイル分析結果
|
||||
|
||||
```text
|
||||
/src/auth/: 🛡️ issues × 3
|
||||
/src/api/: ⚡ bottleneck in handler()
|
||||
/src/db/: ✅ clean
|
||||
/src/utils/: ⚠️ deprecated methods
|
||||
/tests/: 🧪 coverage 78%
|
||||
```
|
||||
|
||||
### プロジェクトステータス
|
||||
|
||||
```text
|
||||
Frontend: 🎨 ✅ 100%
|
||||
Backend: ⚙️ 🔄 75%
|
||||
Database: 🗄️ ✅ migrated
|
||||
Tests: 🧪 ⚠️ 68% (target: 80%)
|
||||
Deploy: 📦 ⏳ scheduled
|
||||
Security: 🛡️ 🚨 1 critical
|
||||
```
|
||||
|
||||
## 設定オプション
|
||||
|
||||
```javascript
|
||||
// 圧縮レベル
|
||||
--uc; // Ultra Compressed: 最大圧縮
|
||||
--mc; // Moderate Compressed: 中程度圧縮
|
||||
--lc; // Light Compressed: 軽度圧縮
|
||||
|
||||
// ドメイン特化
|
||||
--dev; // 開発向け圧縮
|
||||
--ops; // 運用向け圧縮
|
||||
--sec; // セキュリティ向け圧縮
|
||||
```
|
||||
|
||||
## メリット
|
||||
|
||||
1. **コンテキスト節約**: 30-50% のトークン削減
|
||||
2. **視覚的理解**: シンボルで直感的把握
|
||||
3. **情報密度向上**: 同じスペースでより多くの情報
|
||||
4. **履歴保持**: より長い会話履歴を維持
|
||||
5. **パターン認識**: 視覚的パターンで問題発見が容易
|
||||
|
||||
## 注意事項
|
||||
|
||||
- このモードは **AI の応答スタイル**のみを変更します
|
||||
- 生成される**コードの品質**は変わりません
|
||||
- 必要に応じて「通常モードで説明して」と切り替え可能
|
||||
- 初学者や非技術者には通常モードを推奨
|
||||
|
||||
## コマンド例
|
||||
|
||||
```bash
|
||||
# 有効化
|
||||
「Token Efficient Mode on」
|
||||
「簡潔に応答して」
|
||||
「--uc で分析」
|
||||
|
||||
# 無効化
|
||||
「通常モードに戻して」
|
||||
「詳細に説明して」
|
||||
「Token Efficient Mode off」
|
||||
```
|
||||
|
||||
## 実装の影響
|
||||
|
||||
| 項目 | 影響 |
|
||||
| ---------------- | -------------- |
|
||||
| 生成コード品質 | 変更なし ✅ |
|
||||
| 実装の正確性 | 変更なし ✅ |
|
||||
| 機能性 | 変更なし ✅ |
|
||||
| AI の説明方法 | 圧縮される 🔄 |
|
||||
| コンテキスト使用 | 30-50% 削減 ⚡ |
|
||||
|
||||
---
|
||||
|
||||
💡 **Pro Tip**: 長時間の作業セッションでは、最初は通常モードで理解を深め、その後 Token Efficient Mode に切り替えることで、効率とコンテキスト保持のバランスを最適化できます。
|
||||
65
commands/ultrathink.md
Normal file
65
commands/ultrathink.md
Normal file
@@ -0,0 +1,65 @@
|
||||
## Ultrathink
|
||||
|
||||
複雑な課題や重要な決定に対して、段階的で構造化された思考プロセスを実行します。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
# Claude に深い思考を依頼
|
||||
「[課題] について ultrathink で検討して」
|
||||
```
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# アーキテクチャ設計の検討
|
||||
「マイクロサービスとモノリスのどちらを選ぶべきか ultrathink で検討して」
|
||||
|
||||
# 技術選定の分析
|
||||
「このプロジェクトに Rust と TypeScript どちらが適しているか ultrathink で分析して」
|
||||
|
||||
# 問題解決の深掘り
|
||||
「アプリケーションのパフォーマンスが悪い原因と改善方法を ultrathink で検討して」
|
||||
```
|
||||
|
||||
### Claude との連携
|
||||
|
||||
```bash
|
||||
# ビジネス判断
|
||||
「新機能の優先順位付けを ultrathink で検討して。ユーザー価値、開発コスト、技術的リスクの観点から」
|
||||
|
||||
# システム設計
|
||||
「認証システムの設計を ultrathink で検討して。セキュリティ、スケーラビリティ、保守性を考慮して」
|
||||
|
||||
# トレードオフ分析
|
||||
「GraphQL vs REST API の選択を ultrathink で分析して。プロジェクトの要件に基づいて」
|
||||
|
||||
# リファクタリング戦略
|
||||
cat src/legacy_code.js
|
||||
「このレガシーコードのリファクタリング戦略を ultrathink で立案して」
|
||||
```
|
||||
|
||||
### 思考プロセス
|
||||
|
||||
1. **問題の分解** - 課題を構成要素に分解
|
||||
2. **MECE 分析** - 漏れなく重複なく整理
|
||||
3. **複数視点検討** - 技術・ビジネス・ユーザー視点から分析
|
||||
4. **対話的確認** - 重要な判断ポイントでユーザーに確認
|
||||
5. **根拠付き提案** - データと論理に基づく結論
|
||||
|
||||
### 詳細例
|
||||
|
||||
```bash
|
||||
# 複雑な技術的負債の解消
|
||||
「10 年間のレガシーシステムをモダナイズする戦略を ultrathink で検討して。段階的移行、リスク、ROI を含めて」
|
||||
|
||||
# 組織的な課題
|
||||
「開発チームのスケーリング戦略を ultrathink で検討して。現在 5 人から 20 人への拡大を想定」
|
||||
|
||||
# データベース移行
|
||||
「PostgreSQL から DynamoDB への移行を ultrathink で分析して。コスト、パフォーマンス、運用面を考慮」
|
||||
```
|
||||
|
||||
### 注意事項
|
||||
|
||||
ultrathink は時間をかけて深く考える必要がある課題に最適です。単純な質問や即座の回答が必要な場合は、通常の質問形式を使用してください。
|
||||
202
commands/update-dart-doc.md
Normal file
202
commands/update-dart-doc.md
Normal file
@@ -0,0 +1,202 @@
|
||||
## Update Dart Doc
|
||||
|
||||
Dart ファイルの DartDoc コメントを体系的に管理し、高品質な日本語ドキュメントを維持します。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
# 新規追加と更新を同時に実行
|
||||
「DartDoc コメントがないクラスに追加し、基準を満たさないコメントを更新してください」
|
||||
|
||||
# PR の変更ファイルを確認
|
||||
「PR #4308 で変更されたファイルの DartDoc に Claude マーカーがあるか確認してください」
|
||||
|
||||
# 特定ディレクトリのドキュメント整備
|
||||
「packages/app/lib/ui/screen/ 配下の Widget クラスに DartDoc を追加してください」
|
||||
|
||||
# マーカーなしで実行
|
||||
/update-dart-doc --marker false
|
||||
「既存プロジェクトの DartDoc を改善 (Claude マーカーは付けない)」
|
||||
```
|
||||
|
||||
### オプション
|
||||
|
||||
- `--marker <true|false>` : Claude マーカーを付与するか (デフォルト: true)
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# 1. 対象ファイルの分析
|
||||
find . -name "*.dart" -not -path "*/.*" | grep -v "_test.dart" | grep -v "_vrt.dart"
|
||||
「DartDoc が不足しているクラス (コメント行数 0 または 30 文字未満) を特定してください」
|
||||
|
||||
# 2. ドキュメント追加
|
||||
「特定されたクラスに必須要素を含む DartDoc コメントを追加してください」
|
||||
|
||||
# 3. マーカー確認
|
||||
「追加・更新したすべての DartDoc に Claude マーカーがあることを確認してください」
|
||||
```
|
||||
|
||||
### 実行手順
|
||||
|
||||
#### 1. 対象要素の優先順位
|
||||
|
||||
1. 🔴 **最優先**: DartDoc コメントがない要素 (コメント行数 0)
|
||||
2. 🟡 **次優先**: 基準を満たさない要素 (30 文字未満または必須要素欠如)
|
||||
3. 🟢 **確認対象**: Claude マーカーがない既存コメント
|
||||
|
||||
**対象要素**:
|
||||
|
||||
- Class(すべてのクラス定義)
|
||||
- Enum(列挙型)
|
||||
- Extension(拡張メソッド)
|
||||
- 重要な関数 (トップレベル関数、オプション)
|
||||
|
||||
#### 2. DartDoc 記述ルール
|
||||
|
||||
**基本構造**:
|
||||
|
||||
```dart
|
||||
/// {要素の概要説明}(30-60 文字、必須)
|
||||
///
|
||||
/// {詳細説明}(役割、使用コンテキスト、注意点を必ず含む、50-200 文字)
|
||||
///
|
||||
/// Generated by Claude 🤖
|
||||
@アノテーション // 既存アノテーションは変更しない
|
||||
class クラス名 {
|
||||
```
|
||||
|
||||
**文章スタイル**:
|
||||
|
||||
- 丁寧語 (ですます調): 「表示します」「管理するクラスです」
|
||||
- 句読点は「。」「、」を使用
|
||||
- 日本語と半角英数字の間に半角スペース
|
||||
- 技術用語は英語表記: 「Authentication 状態」
|
||||
- 各行は 80 文字以内
|
||||
|
||||
#### 3. クラスカテゴリ別の記述例
|
||||
|
||||
**状態管理クラス (Riverpod)**:
|
||||
|
||||
```dart
|
||||
/// 水平スワイプジェスチャーの無効化状態を管理する State です。
|
||||
///
|
||||
/// 特定の画面や操作中に水平スワイプを無効化する必要がある場合に
|
||||
/// 使用します。例えば、カルーセル表示中や特定の入力中など。
|
||||
///
|
||||
/// Generated by Claude 🤖
|
||||
@Riverpod(keepAlive: true, dependencies: [])
|
||||
class HorizontalDragGestureIgnoreState extends _$HorizontalDragGestureIgnoreState {
|
||||
```
|
||||
|
||||
**Widget クラス**:
|
||||
|
||||
```dart
|
||||
/// ユーザープロフィールを表示する Widget です。
|
||||
///
|
||||
/// アバター画像、ユーザー名、ステータス情報を縦に配置し、
|
||||
/// タップ時にプロフィール詳細画面へ遷移します。
|
||||
///
|
||||
/// Generated by Claude 🤖
|
||||
class UserProfileWidget extends HookConsumerWidget {
|
||||
```
|
||||
|
||||
#### 4. 既存コンテンツ保持ルール
|
||||
|
||||
1. **既存コメントが基準を満たす場合**: そのまま保持 (新規追加しない)
|
||||
- 基準: 30 文字以上かつ必須要素 (概要・詳細・マーカー) を含む
|
||||
2. **既存コメントが基準を満たさない場合**: 完全に置き換え (重複させない)
|
||||
3. **既存コメントがない場合**: 新しいコメントを追加
|
||||
|
||||
**保持すべき重要情報**:
|
||||
|
||||
- URL やリンク: `See also:` で始まる参照
|
||||
- TODO コメント: `TODO(user_name):` 形式
|
||||
- 注意事項: `注意:` や `Warning:` などの警告
|
||||
- 使用例: `例:` や `Example:` で始まるコード
|
||||
- 技術的制約: パフォーマンスや制限の記述
|
||||
|
||||
### Claude マーカー管理
|
||||
|
||||
```bash
|
||||
# マーカー形式
|
||||
/// Generated by Claude 🤖
|
||||
|
||||
# PR の変更ファイルでマーカー確認
|
||||
gh pr diff 4308 --name-only | grep "\.dart$" | xargs grep -l "Generated by Claude"
|
||||
「マーカーがないファイルに追加してください」
|
||||
```
|
||||
|
||||
### 品質チェックリスト
|
||||
|
||||
- ✅ **文字数**: 概要 30-60 文字、詳細 50-200 文字を厳守
|
||||
- ✅ **必須要素**: 概要・詳細説明・Claude マーカーの 3 要素を必ず含む
|
||||
- ✅ **完全性**: 役割・使用コンテキスト・注意点を記載
|
||||
- ✅ **一貫性**: 文体を丁寧語 (ですます調) で統一
|
||||
- ✅ **書式**: 日本語と英語の間に半角スペース
|
||||
- ✅ **正確性**: 実装を分析し、事実に基づいた記述のみ
|
||||
- ✅ **構造**: アノテーションを保持、コメントは上に配置
|
||||
- ✅ **長さ**: 各行を 80 文字以内
|
||||
- ✅ **マーカー**: Claude による変更には必ずマーカー付与
|
||||
|
||||
### 注意事項
|
||||
|
||||
**🔴 絶対禁止事項**:
|
||||
|
||||
- ❌ ドキュメントコメント以外のコード変更
|
||||
- ❌ 実装詳細に関する推測 (事実のみ記載)
|
||||
- ❌ 英語と日本語の不自然な混在
|
||||
- ❌ 既存アノテーションの削除・変更
|
||||
- ❌ 既存コメントとの重複
|
||||
- ❌ テストファイル (`*_test.dart`) への文字数基準未満のコメント
|
||||
- ❌ VRT ファイル (`*_vrt.dart`) への文字数基準未満のコメント
|
||||
|
||||
**静的解析とコミット**:
|
||||
|
||||
```bash
|
||||
# 実行結果の記録
|
||||
ADDED_COMMENTS=0
|
||||
UPDATED_COMMENTS=0
|
||||
ERRORS=0
|
||||
|
||||
# 変更後の確認
|
||||
melos analyze
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "🔴 エラー: 静的解析が失敗しました"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 実行サマリーの出力
|
||||
echo "📊 実行結果:"
|
||||
echo "- 追加したコメント: $ADDED_COMMENTS 件"
|
||||
echo "- 更新したコメント: $UPDATED_COMMENTS 件"
|
||||
echo "- エラー発生数: $ERRORS 件"
|
||||
|
||||
# コミット例
|
||||
git commit -m "docs: DartDoc コメントを追加・更新
|
||||
|
||||
- 基準を満たさないクラス、enum、extension に DartDoc を追加
|
||||
- 30 文字未満のコメントを基準に沿って更新
|
||||
- Claude マーカーを統一的に付与
|
||||
|
||||
実行結果:
|
||||
- 追加: $ADDED_COMMENTS 件
|
||||
- 更新: $UPDATED_COMMENTS 件
|
||||
|
||||
Generated by Claude 🤖"
|
||||
```
|
||||
|
||||
### 実行成功基準
|
||||
|
||||
1. **完了判定**: 以下をすべて満たす場合に成功
|
||||
- `melos analyze` が PASSED
|
||||
- エラー発生数が 0
|
||||
- 追加・更新したコメントがすべて基準を満たす
|
||||
|
||||
2. **部分成功**: 以下の場合
|
||||
- エラー発生数が 5 件未満
|
||||
- 全体の 90% 以上が基準を満たす
|
||||
|
||||
3. **失敗**: 以下の場合
|
||||
- `melos analyze` が FAILED
|
||||
- エラー発生数が 5 件以上
|
||||
306
commands/update-doc-string.md
Normal file
306
commands/update-doc-string.md
Normal file
@@ -0,0 +1,306 @@
|
||||
## Update Doc String
|
||||
|
||||
多言語対応の docstring/コメントを体系的に管理し、高品質なドキュメントを維持します。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
# 言語を自動検出して実行
|
||||
「docstring がないクラス・関数に追加し、基準を満たさないコメントを更新してください」
|
||||
|
||||
# 言語を指定して実行
|
||||
/update-doc-string --lang python
|
||||
「Python ファイルの docstring を PEP 257 準拠で更新してください」
|
||||
|
||||
# 特定ディレクトリのドキュメント整備
|
||||
「src/components/ 配下の関数に JSDoc を追加してください」
|
||||
```
|
||||
|
||||
### オプション
|
||||
|
||||
- `--lang <en|ja>` : ドキュメントの記述言語 (デフォルト: 既存コメントから自動判定、なければ en)
|
||||
- `--style <スタイル>` : ドキュメントスタイルを指定 (言語固有のデフォルトあり)
|
||||
- `--marker <true|false>` : Claude マーカーを付与するか (デフォルト: true)
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# 1. 対象ファイルの分析 (プログラミング言語は自動検出)
|
||||
find . -type f \( -name "*.py" -o -name "*.js" -o -name "*.ts" -o -name "*.dart" -o -name "*.go" -o -name "*.rs" \) | grep -v test
|
||||
「docstring が不足している要素 (コメント行数 0 または 30 文字未満) を特定してください」
|
||||
|
||||
# 2. ドキュメント追加 (言語自動判定)
|
||||
「特定された要素に言語固有の必須要素を含む docstring を追加してください」
|
||||
# → 既存コメントに日本語があれば日本語で、なければ英語で記述
|
||||
|
||||
# 3. ドキュメント追加 (明示的に英語指定)
|
||||
/update-doc-string --lang en
|
||||
「Add docstrings with required elements to the identified elements」
|
||||
|
||||
# 4. マーカー確認
|
||||
「追加・更新したすべての docstring に Claude マーカーがあることを確認してください」
|
||||
```
|
||||
|
||||
### 実行手順
|
||||
|
||||
#### 1. 対象要素の優先順位
|
||||
|
||||
1. 🔴 **最優先**: docstring/コメントがない要素 (コメント行数 0)
|
||||
2. 🟡 **次優先**: 基準を満たさない要素 (30 文字未満または必須要素欠如)
|
||||
3. 🟢 **確認対象**: Claude マーカーがない既存コメント
|
||||
|
||||
**対象要素 (言語共通)**:
|
||||
|
||||
- Class/クラス定義
|
||||
- Function/関数・メソッド
|
||||
- Module/モジュール (Python, Go)
|
||||
- Enum/列挙型
|
||||
- Interface/インターフェース (TypeScript, Go)
|
||||
|
||||
#### 2. 言語別記述ルール
|
||||
|
||||
**Python (PEP 257)**:
|
||||
|
||||
```python
|
||||
# 日本語版 (デフォルト)
|
||||
def calculate_total(items: List[Item]) -> float:
|
||||
"""アイテムリストの合計金額を計算します。(30-60 文字)
|
||||
|
||||
各アイテムの価格と数量を掛け合わせ、税込み合計を返します。
|
||||
空のリストの場合は 0.0 を返します。(50-200 文字)
|
||||
|
||||
Args:
|
||||
items: 計算対象のアイテムリスト
|
||||
|
||||
Returns:
|
||||
税込み合計金額
|
||||
|
||||
Generated by Claude 🤖
|
||||
"""
|
||||
|
||||
# 英語版 (--lang en)
|
||||
def calculate_total(items: List[Item]) -> float:
|
||||
"""Calculate the total amount for a list of items. (30-60 chars)
|
||||
|
||||
Multiplies the price and quantity of each item and returns
|
||||
the total with tax. Returns 0.0 for empty lists. (50-200 chars)
|
||||
|
||||
Args:
|
||||
items: List of items to calculate
|
||||
|
||||
Returns:
|
||||
Total amount with tax
|
||||
|
||||
Generated by Claude 🤖
|
||||
"""
|
||||
```
|
||||
|
||||
**JavaScript/TypeScript (JSDoc)**:
|
||||
|
||||
```javascript
|
||||
/**
|
||||
* ユーザープロフィールを表示するコンポーネントです。(30-60 文字)
|
||||
*
|
||||
* アバター画像、ユーザー名、ステータス情報を表示し、
|
||||
* クリック時にプロフィール詳細画面へ遷移します。(50-200 文字)
|
||||
*
|
||||
* @param {Object} props - コンポーネントのプロパティ
|
||||
* @param {string} props.userId - ユーザー ID
|
||||
* @param {boolean} [props.showStatus=true] - ステータス表示フラグ
|
||||
* @returns {JSX.Element} レンダリングされたコンポーネント
|
||||
*
|
||||
* @generated by Claude 🤖
|
||||
*/
|
||||
const UserProfile = ({ userId, showStatus = true }) => {
|
||||
```
|
||||
|
||||
**Go**:
|
||||
|
||||
```go
|
||||
// CalculateTotal はアイテムリストの合計金額を計算します。(30-60 文字)
|
||||
//
|
||||
// 各アイテムの価格と数量を掛け合わせ、税込み合計を返します。
|
||||
// 空のスライスの場合は 0.0 を返します。(50-200 文字)
|
||||
//
|
||||
// Generated by Claude 🤖
|
||||
func CalculateTotal(items []Item) float64 {
|
||||
```
|
||||
|
||||
**Rust**:
|
||||
|
||||
```rust
|
||||
/// アイテムリストの合計金額を計算します。(30-60 文字)
|
||||
///
|
||||
/// 各アイテムの価格と数量を掛け合わせ、税込み合計を返します。
|
||||
/// 空のベクタの場合は 0.0 を返します。(50-200 文字)
|
||||
///
|
||||
/// Generated by Claude 🤖
|
||||
pub fn calculate_total(items: &[Item]) -> f64 {
|
||||
```
|
||||
|
||||
**Dart (DartDoc)**:
|
||||
|
||||
```dart
|
||||
/// ユーザープロフィールを表示する Widget です。(30-60 文字)
|
||||
///
|
||||
/// アバター画像、ユーザー名、ステータス情報を縦に配置し、
|
||||
/// タップ時にプロフィール詳細画面へ遷移します。(50-200 文字)
|
||||
///
|
||||
/// Generated by Claude 🤖
|
||||
class UserProfileWidget extends StatelessWidget {
|
||||
```
|
||||
|
||||
#### 3. 既存コンテンツ保持ルール
|
||||
|
||||
1. **既存コメントが基準を満たす場合**: そのまま保持 (新規追加しない)
|
||||
- 基準: 30 文字以上かつ必須要素 (概要・詳細・マーカー) を含む
|
||||
2. **既存コメントが基準を満たさない場合**: 完全に置き換え (重複させない)
|
||||
3. **既存コメントがない場合**: 新しいコメントを追加
|
||||
|
||||
**保持すべき重要情報**:
|
||||
|
||||
- URL やリンク: `See also:`, `@see`, `参照:` など
|
||||
- TODO コメント: `TODO:`, `FIXME:`, `XXX:` 形式
|
||||
- 注意事項: `Note:`, `Warning:`, `注意:` など
|
||||
- 使用例: `Example:`, `例:`, `# Examples` など
|
||||
- 既存のパラメータ・戻り値説明
|
||||
|
||||
### 言語別設定
|
||||
|
||||
```yaml
|
||||
# 言語別デフォルト設定
|
||||
languages:
|
||||
python:
|
||||
style: "google" # google, numpy, sphinx
|
||||
indent: 4
|
||||
quotes: '"""'
|
||||
|
||||
javascript:
|
||||
style: "jsdoc"
|
||||
indent: 2
|
||||
prefix: "/**"
|
||||
suffix: "*/"
|
||||
|
||||
typescript:
|
||||
style: "tsdoc"
|
||||
indent: 2
|
||||
prefix: "/**"
|
||||
suffix: "*/"
|
||||
|
||||
go:
|
||||
style: "godoc"
|
||||
indent: 0
|
||||
prefix: "//"
|
||||
|
||||
rust:
|
||||
style: "rustdoc"
|
||||
indent: 0
|
||||
prefix: "///"
|
||||
|
||||
dart:
|
||||
style: "dartdoc"
|
||||
indent: 0
|
||||
prefix: "///"
|
||||
```
|
||||
|
||||
### 品質チェックリスト
|
||||
|
||||
- ✅ **文字数**: 概要 30-60 文字、詳細 50-200 文字を厳守
|
||||
- ✅ **必須要素**: 概要・詳細説明・Claude マーカーの 3 要素を必ず含む
|
||||
- ✅ **完全性**: 役割・使用コンテキスト・注意点を記載
|
||||
- ✅ **言語規約**: 各言語の公式スタイルガイドに準拠
|
||||
- ✅ **例外**: エラー・例外の説明 (該当する場合)
|
||||
- ✅ **正確性**: 実装を分析し、事実に基づいた記述のみ
|
||||
|
||||
### 注意事項
|
||||
|
||||
**🔴 絶対禁止事項**:
|
||||
|
||||
- ❌ ドキュメントコメント以外のコード変更
|
||||
- ❌ 実装詳細に関する推測 (事実のみ記載)
|
||||
- ❌ 言語規約に反するフォーマット
|
||||
- ❌ 既存の型アノテーションの削除・変更
|
||||
- ❌ 既存コメントとの重複
|
||||
- ❌ テストファイルへの文字数基準未満のコメント
|
||||
|
||||
**実行と検証**:
|
||||
|
||||
```bash
|
||||
# 実行結果の記録
|
||||
ADDED_COMMENTS=0
|
||||
UPDATED_COMMENTS=0
|
||||
ERRORS=0
|
||||
|
||||
# 既存コメントから言語を自動判定
|
||||
# 日本語文字 (ひらがな・カタカナ・漢字) を検出したら ja、それ以外は en
|
||||
DOC_LANGUAGE="en" # デフォルト
|
||||
if grep -r '[ぁ-んァ-ヶー一-龠]' --include="*.py" --include="*.js" --include="*.ts" --include="*.dart" --include="*.go" --include="*.rs" . 2>/dev/null | head -n 1; then
|
||||
DOC_LANGUAGE="ja"
|
||||
fi
|
||||
|
||||
# プログラミング言語の自動検出と静的解析
|
||||
if [ -f "*.py" ]; then
|
||||
pylint --disable=all --enable=missing-docstring .
|
||||
elif [ -f "*.js" ] || [ -f "*.ts" ]; then
|
||||
eslint . --rule 'jsdoc/require-jsdoc: error'
|
||||
elif [ -f "*.go" ]; then
|
||||
golint ./...
|
||||
elif [ -f "*.rs" ]; then
|
||||
cargo doc --no-deps
|
||||
elif [ -f "*.dart" ]; then
|
||||
melos analyze
|
||||
fi
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "🔴 エラー: 静的解析が失敗しました"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 実行サマリーの出力
|
||||
echo "📊 実行結果:"
|
||||
echo "- ドキュメント言語: $DOC_LANGUAGE"
|
||||
echo "- 追加したコメント: $ADDED_COMMENTS 件"
|
||||
echo "- 更新したコメント: $UPDATED_COMMENTS 件"
|
||||
echo "- エラー発生数: $ERRORS 件"
|
||||
```
|
||||
|
||||
### 実行成功基準
|
||||
|
||||
1. **完了判定**: 以下をすべて満たす場合に成功
|
||||
- 言語固有の静的解析が PASSED
|
||||
- エラー発生数が 0
|
||||
- 追加・更新したコメントがすべて基準を満たす
|
||||
|
||||
2. **部分成功**: 以下の場合
|
||||
- エラー発生数が 5 件未満
|
||||
- 全体の 90% 以上が基準を満たす
|
||||
|
||||
3. **失敗**: 以下の場合
|
||||
- 静的解析が FAILED
|
||||
- エラー発生数が 5 件以上
|
||||
|
||||
### Claude との連携
|
||||
|
||||
```bash
|
||||
# プロジェクト全体の分析 (言語自動判定)
|
||||
find . -type f \( -name "*.py" -o -name "*.js" -o -name "*.ts" \)
|
||||
/update-doc-string
|
||||
「このプロジェクトの docstring を言語別のベストプラクティスに従って更新して」
|
||||
# → 既存コメントに日本語があれば ja、なければ en で実行
|
||||
|
||||
# 明示的に英語ドキュメントで実行
|
||||
/update-doc-string --lang en
|
||||
"Update docstrings following language-specific best practices"
|
||||
|
||||
# 明示的に日本語ドキュメントで実行
|
||||
/update-doc-string --lang ja
|
||||
「このプロジェクトの docstring を言語別のベストプラクティスに従って更新して」
|
||||
|
||||
# マーカーなしで実行 (言語自動判定)
|
||||
/update-doc-string --marker false
|
||||
"Improve existing docstrings without adding Claude markers"
|
||||
|
||||
# 英語ドキュメント、マーカーなし
|
||||
/update-doc-string --lang en --marker false
|
||||
"Improve existing docstrings without adding Claude markers"
|
||||
```
|
||||
105
commands/update-flutter-deps.md
Normal file
105
commands/update-flutter-deps.md
Normal file
@@ -0,0 +1,105 @@
|
||||
## Flutter Dependencies Update
|
||||
|
||||
Flutter プロジェクトの依存関係を安全に更新します。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
# 依存関係の状態を確認して Claude に依頼
|
||||
flutter pub deps --style=compact
|
||||
「pubspec.yaml の依存関係を最新バージョンに更新して」
|
||||
```
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# 現在の依存関係を確認
|
||||
cat pubspec.yaml
|
||||
「この Flutter プロジェクトの依存関係を分析して更新可能なパッケージを教えて」
|
||||
|
||||
# アップグレード後の確認
|
||||
flutter pub upgrade --dry-run
|
||||
「このアップグレード予定の内容から破壊的変更があるか確認して」
|
||||
```
|
||||
|
||||
### Claude との連携
|
||||
|
||||
```bash
|
||||
# 包括的な依存関係更新
|
||||
cat pubspec.yaml
|
||||
「Flutter の依存関係を分析し、以下を実行して:
|
||||
1. 各パッケージの最新バージョンを調査
|
||||
2. 破壊的変更の有無を確認
|
||||
3. 危険度を評価 (安全・注意・危険)
|
||||
4. 必要なコード変更を提案
|
||||
5. 更新版 pubspec.yaml を生成」
|
||||
|
||||
# 安全な段階的更新
|
||||
flutter pub outdated
|
||||
「メジャーバージョンアップを避けて、安全にアップデート可能なパッケージのみ更新して」
|
||||
|
||||
# 特定パッケージの更新影響分析
|
||||
「provider を最新バージョンに更新した場合の影響と必要な変更を教えて」
|
||||
```
|
||||
|
||||
### 詳細例
|
||||
|
||||
```bash
|
||||
# Release Notes を含む詳細分析
|
||||
cat pubspec.yaml && flutter pub outdated
|
||||
「依存関係を分析し、各パッケージについて:
|
||||
1. 現在 → 最新バージョン
|
||||
2. 危険度評価 (安全・注意・危険)
|
||||
3. 主な変更点 (CHANGELOG から)
|
||||
4. 必要なコード修正
|
||||
をテーブル形式で提示して」
|
||||
|
||||
# Null Safety 移行の分析
|
||||
cat pubspec.yaml
|
||||
「Null Safety に対応していないパッケージを特定し、移行計画を立てて」
|
||||
```
|
||||
|
||||
### 危険度の基準
|
||||
|
||||
```text
|
||||
安全 (🟢):
|
||||
- パッチバージョンアップ (1.2.3 → 1.2.4)
|
||||
- バグ修正のみ
|
||||
- 後方互換性保証
|
||||
|
||||
注意 (🟡):
|
||||
- マイナーバージョンアップ (1.2.3 → 1.3.0)
|
||||
- 新機能追加
|
||||
- 非推奨警告あり
|
||||
|
||||
危険 (🔴):
|
||||
- メジャーバージョンアップ (1.2.3 → 2.0.0)
|
||||
- 破壊的変更
|
||||
- API の削除・変更
|
||||
```
|
||||
|
||||
### 更新の実行
|
||||
|
||||
```bash
|
||||
# バックアップ作成
|
||||
cp pubspec.yaml pubspec.yaml.backup
|
||||
cp pubspec.lock pubspec.lock.backup
|
||||
|
||||
# 更新実行
|
||||
flutter pub upgrade
|
||||
|
||||
# 更新後の確認
|
||||
flutter analyze
|
||||
flutter test
|
||||
flutter pub deps --style=compact
|
||||
```
|
||||
|
||||
### 注意事項
|
||||
|
||||
更新後は必ず動作確認を実施してください。問題が発生した場合は以下で復元:
|
||||
|
||||
```bash
|
||||
cp pubspec.yaml.backup pubspec.yaml
|
||||
cp pubspec.lock.backup pubspec.lock
|
||||
flutter pub get
|
||||
```
|
||||
105
commands/update-node-deps.md
Normal file
105
commands/update-node-deps.md
Normal file
@@ -0,0 +1,105 @@
|
||||
## Node Dependencies Update
|
||||
|
||||
Node.js プロジェクトの依存関係を安全に更新します。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
# 依存関係の状態を確認して Claude に依頼
|
||||
npm outdated
|
||||
「package.json の依存関係を最新バージョンに更新して」
|
||||
```
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# 現在の依存関係を確認
|
||||
cat package.json
|
||||
「この Node.js プロジェクトの依存関係を分析して更新可能なパッケージを教えて」
|
||||
|
||||
# アップデート可能な一覧を確認
|
||||
npm outdated
|
||||
「これらのパッケージの更新における危険度を分析して」
|
||||
```
|
||||
|
||||
### Claude との連携
|
||||
|
||||
```bash
|
||||
# 包括的な依存関係更新
|
||||
cat package.json
|
||||
「Node.js の依存関係を分析し、以下を実行して:
|
||||
1. 各パッケージの最新バージョンを調査
|
||||
2. 破壊的変更の有無を確認
|
||||
3. 危険度を評価 (安全・注意・危険)
|
||||
4. 必要なコード変更を提案
|
||||
5. 更新版 package.json を生成」
|
||||
|
||||
# 安全な段階的更新
|
||||
npm outdated
|
||||
「メジャーバージョンアップを避けて、安全にアップデート可能なパッケージのみ更新して」
|
||||
|
||||
# 特定パッケージの更新影響分析
|
||||
「express を最新バージョンに更新した場合の影響と必要な変更を教えて」
|
||||
```
|
||||
|
||||
### 詳細例
|
||||
|
||||
```bash
|
||||
# Release Notes を含む詳細分析
|
||||
cat package.json && npm outdated
|
||||
「依存関係を分析し、各パッケージについて:
|
||||
1. 現在 → 最新バージョン
|
||||
2. 危険度評価 (安全・注意・危険)
|
||||
3. 主な変更点 (CHANGELOG から)
|
||||
4. 必要なコード修正
|
||||
をテーブル形式で提示して」
|
||||
|
||||
# TypeScript プロジェクトの型定義考慮
|
||||
cat package.json tsconfig.json
|
||||
「TypeScript の型定義も含めて依存関係を更新し、型エラーが発生しないように更新計画を立てて」
|
||||
```
|
||||
|
||||
### 危険度の基準
|
||||
|
||||
```text
|
||||
安全 (🟢):
|
||||
- パッチバージョンアップ (1.2.3 → 1.2.4)
|
||||
- バグ修正のみ
|
||||
- 後方互換性保証
|
||||
|
||||
注意 (🟡):
|
||||
- マイナーバージョンアップ (1.2.3 → 1.3.0)
|
||||
- 新機能追加
|
||||
- 非推奨警告あり
|
||||
|
||||
危険 (🔴):
|
||||
- メジャーバージョンアップ (1.2.3 → 2.0.0)
|
||||
- 破壊的変更
|
||||
- API の削除・変更
|
||||
```
|
||||
|
||||
### 更新の実行
|
||||
|
||||
```bash
|
||||
# バックアップ作成
|
||||
cp package.json package.json.backup
|
||||
cp package-lock.json package-lock.json.backup
|
||||
|
||||
# 更新実行
|
||||
npm update
|
||||
|
||||
# 更新後の確認
|
||||
npm test
|
||||
npm run build
|
||||
npm audit
|
||||
```
|
||||
|
||||
### 注意事項
|
||||
|
||||
更新後は必ず動作確認を実施してください。問題が発生した場合は以下で復元:
|
||||
|
||||
```bash
|
||||
cp package.json.backup package.json
|
||||
cp package-lock.json.backup package-lock.json
|
||||
npm install
|
||||
```
|
||||
107
commands/update-rust-deps.md
Normal file
107
commands/update-rust-deps.md
Normal file
@@ -0,0 +1,107 @@
|
||||
## Rust Dependencies Update
|
||||
|
||||
Rust プロジェクトの依存関係を安全に更新します。
|
||||
|
||||
### 使い方
|
||||
|
||||
```bash
|
||||
# 依存関係の状態を確認して Claude に依頼
|
||||
cargo tree
|
||||
「Cargo.toml の依存関係を最新バージョンに更新して」
|
||||
```
|
||||
|
||||
### 基本例
|
||||
|
||||
```bash
|
||||
# 現在の依存関係を確認
|
||||
cat Cargo.toml
|
||||
「この Rust プロジェクトの依存関係を分析して更新可能なクレートを教えて」
|
||||
|
||||
# 更新可能な一覧を確認
|
||||
cargo update --dry-run
|
||||
「これらのクレートの更新における危険度を分析して」
|
||||
```
|
||||
|
||||
### Claude との連携
|
||||
|
||||
```bash
|
||||
# 包括的な依存関係更新
|
||||
cat Cargo.toml
|
||||
「Rust の依存関係を分析し、以下を実行して:
|
||||
1. 各クレートの最新バージョンを調査
|
||||
2. 破壊的変更の有無を確認
|
||||
3. 危険度を評価 (安全・注意・危険)
|
||||
4. 必要なコード変更を提案
|
||||
5. 更新版 Cargo.toml を生成」
|
||||
|
||||
# 安全な段階的更新
|
||||
cargo tree
|
||||
「メジャーバージョンアップを避けて、安全にアップデート可能なクレートのみ更新して」
|
||||
|
||||
# 特定クレートの更新影響分析
|
||||
「tokio を最新バージョンに更新した場合の影響と必要な変更を教えて」
|
||||
```
|
||||
|
||||
### 詳細例
|
||||
|
||||
```bash
|
||||
# Release Notes を含む詳細分析
|
||||
cat Cargo.toml && cargo tree
|
||||
「依存関係を分析し、各クレートについて:
|
||||
1. 現在 → 最新バージョン
|
||||
2. 危険度評価 (安全・注意・危険)
|
||||
3. 主な変更点 (CHANGELOG から)
|
||||
4. トレイト境界の変更
|
||||
5. 必要なコード修正
|
||||
をテーブル形式で提示して」
|
||||
|
||||
# 非同期ランタイムの移行分析
|
||||
cat Cargo.toml src/main.rs
|
||||
「async-std から tokio への移行、または tokio のメジャーバージョンアップに必要な変更をすべて提示して」
|
||||
```
|
||||
|
||||
### 危険度の基準
|
||||
|
||||
```text
|
||||
安全 (🟢):
|
||||
- パッチバージョンアップ (0.1.2 → 0.1.3)
|
||||
- バグ修正のみ
|
||||
- 後方互換性保証
|
||||
|
||||
注意 (🟡):
|
||||
- マイナーバージョンアップ (0.1.0 → 0.2.0)
|
||||
- 新機能追加
|
||||
- 非推奨警告あり
|
||||
|
||||
危険 (🔴):
|
||||
- メジャーバージョンアップ (0.x.y → 1.0.0、1.x.y → 2.0.0)
|
||||
- 破壊的変更
|
||||
- API の削除・変更
|
||||
- トレイト境界の変更
|
||||
```
|
||||
|
||||
### 更新の実行
|
||||
|
||||
```bash
|
||||
# バックアップ作成
|
||||
cp Cargo.toml Cargo.toml.backup
|
||||
cp Cargo.lock Cargo.lock.backup
|
||||
|
||||
# 更新実行
|
||||
cargo update
|
||||
|
||||
# 更新後の確認
|
||||
cargo check
|
||||
cargo test
|
||||
cargo clippy
|
||||
```
|
||||
|
||||
### 注意事項
|
||||
|
||||
更新後は必ず動作確認を実施してください。問題が発生した場合は以下で復元:
|
||||
|
||||
```bash
|
||||
cp Cargo.toml.backup Cargo.toml
|
||||
cp Cargo.lock.backup Cargo.lock
|
||||
cargo build
|
||||
```
|
||||
Reference in New Issue
Block a user