Skills: 高度なデザインパターン

最終更新:2026-08-31

デザインパターンはコードだけのものではない——同じ知恵がプロンプトエンジニアリングの Skill をより柔軟で堅牢にする。


1. ストラテジーパターン

(1) 概念

異なる条件に基づいて異なる実行戦略を選択:

TEXT 📖 参照専用
ストラテジーパターンの構造
┌──────────┐
│ コンテキスト │ → 条件を評価 → 戦略を選択
└────┬─────┘
     ├── 戦略 A(Python プロジェクト)
     ├── 戦略 B(TypeScript プロジェクト)
     └── 戦略 C(Go プロジェクト)

(2) Skill での実装

MARKDOWN
## レビュー戦略の選択

プロジェクトの技術スタックに基づいて自動的に選択:

{{#if tech_stack == "python"}}
Python レビュー戦略を実行:
- type hints をチェック
- docstring をチェック
- PEP 8 準拠をチェック
{{/if}}

{{#if tech_stack == "typescript"}}
TypeScript レビュー戦略を実行:
- any 型をチェック
- インターフェース定義をチェック
- 型安全性をチェック
{{/if}}

(3) 適用シナリオ

シナリオ 戦略の次元
マルチ言語プロジェクト プログラミング言語 Python/TS/Go レビュー
マルチ環境デプロイ ターゲット環境 staging/production 戦略
マルチフレームワークプロジェクト Web フレームワーク React/Vue/Svelte 規約

2. チェーンオブレスポンシビリティパターン

(1) 概念

複数のハンドラが順番にリクエストを処理し、各ハンドラが次に渡すかどうかを決定:

TEXT 📖 参照専用
チェーンオブレスポンシビリティの例

入力 → フォーマットチェック → セキュリティチェック → 品質チェック → 出力
        ↓ 失敗           ↓ 失敗           ↓ 失敗
       エラーを返す       エラーを返す       エラーを返す

(2) Skill での実装

MARKDOWN
## コードレビューのチェーンオブレスポンシビリティ

### ゲート1:フォーマットチェック
- ファイルエンコーディングは正しいか?
- コードスタイルは規約に従っているか?
- フォーマット失敗 → フォーマット問題を返し、続行しない

### ゲート2:セキュリティチェック
- SQL インジェクション、XSS の検出
- ハードコーディングされたキーの検出
- セキュリティ失敗 → セキュリティ問題を返し、続行しない

### ゲート3:品質チェック
- 関数の長さ、循環的複雑度
- 重複コードの検出
- 品質失敗 → 品質問題を返す

### すべて通過 → レビュー通過レポートを出力

(3) メリット

TEXT 📖 参照専用
チェーンオブレスポンシビリティのメリット
├── 早期終了:前段のチェックが失敗すれば即座に返し、後続のオーバーヘッドを節約
├── 関心の分離:各チェッカーは自分の観点だけに注目
├── 拡張性:新しいチェック観点は1つのリンクを追加するだけ
└── 設定可能性:特定のチェックリンクをスキップ可能

3. オブザーバーパターン

(1) 概念

イベント発生時にすべてのサブスクライバに自動通知:

TEXT 📖 参照専用
オブザーバーパターン

イベントソース:ファイル変更
├── オブザーバー A:テストを自動実行
├── オブザーバー B:コードレビューを自動実行
└── オブザーバー C:ドキュメントを自動更新

(2) Skill での実装

YAML
---
name: file-change-watcher
description: "ファイル変更が自動操作をトリガー"
triggers:
  - context: "file_modified"
---
MARKDOWN
## 変更応答ルール

ファイル変更時に自動判定:
- src/**/*.py が変更 → Python テストをトリガー
- src/**/*.ts が変更 → TypeScript テストをトリガー
- docs/** が変更 → ドキュメント検証をトリガー
- .env* が変更 → 環境設定の確認をリマインド

4. テンプレートメソッドパターン

(1) 概念

アルゴリズムの骨格を定義し、サブステップをカスタマイズ可能に:

MARKDOWN
## レビューテンプレートメソッド

### 固定骨格
1. 変更を収集
2. ファイルごとレビュー(← カスタマイズ可能)
3. レポートを集約
4. 推奨を出力

### カスタマイズ可能ステップ(ステップ2)
言語/プロジェクトタイプごとにレビュー観点をカスタマイズ

(2) Skill 組み合わせでの実装

TEXT 📖 参照専用
テンプレートメソッド = ベース Skill + プラグイン可能サブ Skill

base-review.md(骨格)
├── 変更を収集
├── {{review_strategy}} Skill を呼び出し(プラグイン可能)
├── レポートを集約
└── 推奨を出力

python-review.md(具象戦略)→ review_strategy に差し込み
ts-review.md(具象戦略)→ review_strategy に差し込み

5. デコレーターパターン

(1) 概念

元のロジックを変更せずに Skill に追加機能を動的に付与:

TEXT 📖 参照専用
ベース Skill:code-review
├── + キャッシュデコレーター:レビュー結果をキャッシュ
├── + ロギングデコレーター:レビュー操作を記録
└── + 通知デコレーター:レビュー完了時にチームに通知

(2) Skill での実装

MARKDOWN
## 拡張レビュー Skill

ベースのレビューフローに加えて以下を追加:
1. レビュー前:リクエストとタイムスタンプをログ記録
2. レビュー後:結果をチームチャンネルに送信
3. キャッシュ:変更されていないファイルは以前の結果を再利用

❓ よくある質問

Q デザインパターンはプロンプトで役に立ちますか?
A はい。パターンの本質は特定の問題を解決する経験の蒸留です。パターン的思考でプロンプトのロジックを整理すると、出力がより予測可能で保守しやすくなります。
Q どのパターンを使うべきですか?
A 問題のタイプによります——複数戦略→ストラテジーパターン、パイプライン→チェーンオブレスポンシビリティ、イベント応答→オブザーバー、フロー骨格→テンプレートメソッド。
Q パターンで Skill が複雑になりすぎますか?
A 乱用するとそうなります。1つの Skill で最大1〜2パターンまで。シンプルな問題にはパターンは不要です。

📖 まとめ


📝 練習問題

  1. 基礎問題(難易度⭐):ストラテジーパターンでレビュー Skill をリファクタリングし、2つのプログラミング言語のレビュー戦略をサポートしてください。
  2. 応用問題(難易度⭐⭐):チェーンオブレスポンシビリティパターンで3ゲートレビュー Skill(フォーマット→セキュリティ→品質)を設計してください。
  3. チャレンジ問題(難易度⭐⭐⭐):2つ以上のパターンを総合的に適用し、戦略選択、チェーンチェック、自動通知をサポートするスマートレビューシステムを設計してください。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%