Loading skill
Install any skill in seconds. Free to start, no credit card required.
Get Started Free →コードベースに適用可能なデザインパターンを提案し SOLID 原則の遵守状況を評価する。「デザインパターンを提案して」「適用できるパターンは?」「SOLID 原則をチェック」「設計パターンで改善して」「アンチパターンを検出して」「リファクタリングパターンは?」「コードの設計を評価して」などで起動。
.claude/skills/wasabeef-solid/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-20 | ✗→✓ | ▲ Improved | 13% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 35% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 27% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 22% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 65% | 0% |
コードベースに適用可能なデザインパターンを提案し、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
textS - 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
javascriptclass OrderService { processOrder(order, paymentType) { if (paymentType === "credit") { // クレジットカード処理 } else if (paymentType === "paypal") { // PayPal 処理 } // 他の決済方法... } }
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); } }
Other measured skills in the registry, with their headline benchmark lift.