Claude Code Plugins

Community-maintained marketplace

Feedback

prompt-engineering-helper

@ntaksh42/agents
0
0

LLMプロンプトの最適化・テスト支援スキル。プロンプトのパフォーマンス評価、改善提案、A/Bテスト、ベストプラクティス適用、再現性検証を行います。

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name prompt-engineering-helper
description LLMプロンプトの最適化・テスト支援スキル。プロンプトのパフォーマンス評価、改善提案、A/Bテスト、ベストプラクティス適用、再現性検証を行います。

Prompt Engineering Helper Skill

LLM(大規模言語モデル)プロンプトの最適化とテストを支援するスキルです。

概要

このスキルは、LLMプロンプトの品質を向上させるための包括的な支援を提供します。プロンプトの分析、改善提案、A/Bテスト、ベストプラクティスの適用、パフォーマンス評価など、プロンプトエンジニアリングに必要な全てのプロセスをサポートします。

主な機能

  • プロンプト分析: 現在のプロンプトの強み・弱みを評価
  • 改善提案: より効果的なプロンプトへの書き換え案を提示
  • A/Bテスト: 複数のプロンプトバリエーションを比較評価
  • ベストプラクティス適用: 業界標準のプロンプト設計パターンを適用
  • 再現性検証: 同じプロンプトで一貫した結果が得られるかテスト
  • Few-shot例最適化: 効果的な例の選定と配置
  • Chain-of-Thought: 推論プロセスを明示的にするプロンプト設計
  • 評価メトリクス: 明確性、具体性、完全性、安全性などの指標でスコアリング
  • トークン最適化: コストを抑えながら品質を維持
  • マルチモーダル対応: テキスト、画像、構造化データを含むプロンプト

プロンプト分析の評価基準

1. 明確性 (Clarity)

プロンプトが曖昧さなく明確に意図を伝えているか

Good:

以下の顧客レビューを分析し、次の情報を抽出してください:
1. 感情(ポジティブ/ネガティブ/中立)
2. 主なトピック(最大3つ)
3. 改善提案(あれば)

レビュー: {review_text}

出力形式:
{
  "sentiment": "ポジティブ|ネガティブ|中立",
  "topics": ["トピック1", "トピック2", "トピック3"],
  "suggestions": ["提案1", "提案2"]
}

Avoid:

このレビューについて分析してください。

2. 具体性 (Specificity)

タスクの詳細、制約、期待される出力が明確に定義されているか

Good:

以下のPythonコードをレビューし、以下の観点で問題点を指摘してください:
- セキュリティ脆弱性(SQLインジェクション、XSSなど)
- パフォーマンスの問題(N+1クエリ、不要なループなど)
- コードスタイル(PEP8違反)

各問題について:
1. 問題の種類
2. 該当する行番号
3. 具体的な改善案

を提示してください。

Avoid:

このコードをレビューしてください。

3. 完全性 (Completeness)

必要な情報、制約、エッジケースの処理がすべて含まれているか

Good:

以下の条件でタスク管理アプリのユーザーストーリーを生成してください:

対象ユーザー: フリーランスエンジニア
主な機能: タスク作成、編集、削除、優先度設定、期限管理
制約:
- モバイルファーストのデザイン
- オフライン対応
- 最大タスク数: 1000件

各ユーザーストーリーは以下の形式で出力:
"As a [ユーザータイプ], I want to [アクション] so that [目的]"

10件のユーザーストーリーを生成してください。

Avoid:

タスク管理アプリのユーザーストーリーを作ってください。

4. コンテキスト提供 (Context)

LLMが適切に判断するための背景情報が十分に提供されているか

Good:

あなたは経験豊富なReactコンサルタントです。
クライアントは中規模のECサイト(月間10万PV)を運営しており、
現在のReactアプリケーションのパフォーマンスに課題を抱えています。

以下のコードを分析し、パフォーマンス改善のための具体的な提案を
3つ挙げてください。各提案には以下を含めてください:
- 問題点
- 改善案
- 期待される効果
- 実装の難易度(低/中/高)

コード:
{code}

Avoid:

このReactコードを改善してください。

5. 構造化 (Structure)

プロンプトが論理的に構造化され、読みやすいか

Good:

# タスク
GitHubリポジトリのREADME.mdを生成してください。

## 入力情報
- プロジェクト名: {project_name}
- 説明: {description}
- 主な機能: {features}
- 技術スタック: {tech_stack}

## 出力要件
1. プロジェクト概要(2-3文)
2. 主な機能リスト
3. インストール手順
4. 使用例
5. ライセンス情報

## 制約
- Markdown形式
- 合計文字数: 500-800字
- コードブロックは適切にハイライト

Avoid:

README.mdを作ってください。プロジェクト名は{project_name}で、
説明は{description}です。機能は{features}で技術スタックは{tech_stack}です。
インストール方法と使い方も書いてください。

プロンプト改善パターン

パターン1: Zero-shot → Few-shot

Before (Zero-shot):

以下のテキストを英語に翻訳してください:
{text}

After (Few-shot):

以下の例を参考に、テキストを英語に翻訳してください:

例1:
日本語: 今日は良い天気ですね。
英語: It's nice weather today.

例2:
日本語: 会議は午後3時に始まります。
英語: The meeting starts at 3 PM.

例3:
日本語: このプロジェクトは順調に進んでいます。
英語: This project is progressing smoothly.

翻訳してください:
{text}

パターン2: 曖昧 → 具体的

Before:

このデータを分析してください。

After:

以下のCSVデータを分析し、次の情報を抽出してください:

1. 基本統計量(平均、中央値、標準偏差)
2. 外れ値の検出(±3σ)
3. 欠損値の数とパーセンテージ
4. カテゴリ変数の分布

出力形式: JSON
{
  "statistics": {...},
  "outliers": [...],
  "missing_values": {...},
  "categorical_distribution": {...}
}

データ:
{csv_data}

パターン3: 単一ステップ → Chain-of-Thought

Before:

この数学の問題を解いてください:
{problem}

After:

以下の数学の問題を、ステップバイステップで解いてください:

問題: {problem}

解答手順:
1. 問題の理解: 何を求められているか明確にする
2. 既知の情報と未知の情報を整理
3. 適用できる公式や定理を特定
4. 計算プロセスを段階的に記述
5. 答えを検証

最終的な答えは以下の形式で出力:
答え: [数値] [単位]

パターン4: 無制約 → 制約付き

Before:

ブログ記事を書いてください。
テーマ: {topic}

After:

以下の制約に従って、ブログ記事を執筆してください:

テーマ: {topic}
対象読者: 初心者エンジニア(経験1-2年)
文体: カジュアルだが専門的
文字数: 1500-2000字
構成:
  1. 導入(問題提起): 200字
  2. 本文(解決策・説明): 1000字
  3. 具体例・コード: 500字
  4. まとめ: 300字

含めるべき要素:
- 実践的なコード例
- 初心者が陥りやすい落とし穴
- 参考リンク(2-3個)

避けるべき要素:
- 過度に専門的な用語(必要な場合は説明を追加)
- 古い情報(2020年以前の技術)

パターン5: 出力形式の明示

Before:

このJSON APIレスポンスからエラー情報を抽出してください。
{api_response}

After:

以下のJSON APIレスポンスからエラー情報を抽出し、
指定した形式で出力してください:

入力:
{api_response}

出力形式(TypeScript型定義):
interface ErrorInfo {
  statusCode: number;
  errorType: string;
  message: string;
  timestamp: string;
  affectedFields?: string[];
}

出力例:
{
  "statusCode": 400,
  "errorType": "ValidationError",
  "message": "Invalid email format",
  "timestamp": "2024-11-22T10:30:00Z",
  "affectedFields": ["email"]
}

抽出してください:

A/Bテスト機能

使い方

以下の2つのプロンプトを比較評価してください:

プロンプトA:
「この文章を要約してください。」

プロンプトB:
「以下の文章を3つの箇条書きで要約してください。各箇条書きは1文で簡潔に。」

評価基準:
- 明確性
- 具体性
- 再現性
- 出力の品質

テストケース: 3つの異なる入力文章

評価レポート例

## A/Bテスト結果

### プロンプトA
スコア: 65/100
- 明確性: 6/10(タスクが曖昧)
- 具体性: 5/10(要約の形式が不明確)
- 再現性: 7/10(比較的一貫した結果)
- 出力の品質: 6/10(要約の長さが不安定)

### プロンプトB
スコア: 88/100
- 明確性: 9/10(タスクが明確)
- 具体性: 9/10(形式が詳細に指定)
- 再現性: 9/10(非常に一貫した結果)
- 出力の品質: 8/10(期待通りの出力)

### 推奨
プロンプトBを採用することを推奨します。
理由: 具体的な制約により、出力が安定し、品質が向上。

ベストプラクティス集

1. Role Prompting(役割設定)

あなたは10年の経験を持つシニアPythonエンジニアです。
コードレビューの専門家として、以下のコードを評価してください。

2. 出力形式の厳密な指定

必ず以下のJSON形式で出力してください。
他のテキストは一切含めないでください:

{
  "summary": "要約文",
  "key_points": ["ポイント1", "ポイント2"],
  "confidence": 0.85
}

3. ステップバイステップ指示

以下の手順で分析を実行してください:

ステップ1: データの前処理
- 欠損値を確認
- 外れ値を検出

ステップ2: 探索的データ分析
- 各変数の分布を確認
- 相関関係を分析

ステップ3: 結果の要約
- 主要な発見を3つ挙げる
- 推奨アクションを提示

4. エッジケースの処理

以下の入力に対して、適切に処理してください:

エッジケース:
- 入力が空文字列の場合 → "入力が空です"と返す
- 入力が1000文字を超える場合 → 最初の1000文字のみ処理
- 無効な形式の場合 → エラーメッセージを返す

通常ケース:
{normal_processing_instructions}

5. 温度パラメータの推奨値

タスクの種類に応じた推奨設定:

創造的タスク(アイデア生成、ストーリー執筆):
- temperature: 0.7-0.9
- top_p: 0.9

分析的タスク(コードレビュー、データ分析):
- temperature: 0.1-0.3
- top_p: 0.1

翻訳・要約タスク:
- temperature: 0.3-0.5
- top_p: 0.5

トークン最適化

冗長なプロンプトの圧縮

Before (150 tokens):

あなたは非常に経験豊富で優秀なソフトウェアエンジニアです。
長年にわたってさまざまなプロジェクトに携わってきました。
以下のコードを丁寧にレビューしてください。
問題点があれば指摘し、改善案を提示してください。
できるだけ詳しく説明をお願いします。

After (45 tokens):

経験豊富なエンジニアとして、以下のコードをレビューし、
問題点と改善案を提示してください。

システムメッセージの活用

Before:

[ユーザーメッセージ]
あなたはPythonの専門家です。以下のコードを...

After:

[システムメッセージ]
You are a Python expert.

[ユーザーメッセージ]
以下のコードを...

使用例

基本的な使い方

以下のプロンプトを分析し、改善案を提示してください:

現在のプロンプト:
「このコードを直してください。」

期待する出力:
- 明確性、具体性、完全性のスコア
- 改善されたプロンプト
- 改善のポイント

Few-shot例の最適化

以下のFew-shot例を評価し、より効果的な例を提案してください:

タスク: 感情分析
現在の例:
1. "良い" → ポジティブ
2. "悪い" → ネガティブ
3. "普通" → 中立

改善してください。

プロンプトテンプレート生成

以下のタスク用のプロンプトテンプレートを生成してください:

タスク: コードレビュー
対象言語: TypeScript
重点項目: セキュリティ、パフォーマンス、型安全性

要件:
- 変数部分を{variable_name}で表現
- 評価基準を明確に
- 出力形式を指定

マルチステップタスクのプロンプト設計

複数のLLM呼び出しが必要なタスクのプロンプトチェーンを設計してください:

最終目標: ブログ記事の自動生成
ステップ:
1. トピック案の生成
2. アウトラインの作成
3. 各セクションの執筆
4. 編集・校正

各ステップのプロンプトを設計してください。

評価メトリクス詳細

明確性スコア (0-10)

  • 10: タスクが完全に明確、曖昧さゼロ
  • 7-9: ほぼ明確だが、若干の曖昧さあり
  • 4-6: やや曖昧、解釈の余地あり
  • 1-3: 非常に曖昧、意図が不明確
  • 0: 全く不明確

具体性スコア (0-10)

  • 10: すべての詳細、制約、形式が明記
  • 7-9: 主要な詳細が記載、一部省略
  • 4-6: 基本的な情報のみ
  • 1-3: ほとんど詳細なし
  • 0: 全く具体性なし

完全性スコア (0-10)

  • 10: すべての必要情報、エッジケース対応含む
  • 7-9: 主要な情報は揃っている
  • 4-6: 基本情報のみ、一部欠落
  • 1-3: 多くの情報が欠落
  • 0: ほとんど情報なし

再現性スコア (0-10)

  • 10: 同じ入力で常に同じ出力
  • 7-9: ほぼ一貫した出力
  • 4-6: 時々異なる出力
  • 1-3: 頻繁に異なる出力
  • 0: 全く一貫性なし

高度な使用例

システムプロンプトの最適化

以下のシステムプロンプトを最適化してください:

現在:
「あなたはAIアシスタントです。ユーザーの質問に答えてください。」

要件:
- タスクの専門性を明示
- 制約・ガイドラインを追加
- 出力形式のデフォルトを設定
- トーンとスタイルを定義

プロンプトチェーンの設計

以下の複雑なタスクをプロンプトチェーンに分解してください:

タスク: GitHubリポジトリの包括的な分析レポート生成

必要な分析:
1. コード品質評価
2. セキュリティ脆弱性検出
3. パフォーマンスボトルネック分析
4. アーキテクチャ評価
5. ドキュメント品質評価

各ステップのプロンプトと、ステップ間のデータ受け渡しを設計してください。

コンテキスト長の最適化

以下の長いコンテキストを含むプロンプトを最適化してください:

現在のコンテキスト: 10,000トークン(長文ドキュメント全体)

要件:
- コンテキストを5,000トークン以下に圧縮
- 重要情報は保持
- 必要に応じてRAG(Retrieval-Augmented Generation)を提案

トラブルシューティング

問題: 出力が不安定

解決策:

  1. 温度パラメータを下げる(0.0-0.2)
  2. Few-shot例を追加
  3. 出力形式を厳密に指定
  4. システムプロンプトで一貫性を強調

問題: プロンプトが長すぎる

解決策:

  1. システムメッセージに共通部分を移動
  2. 冗長な表現を削除
  3. 必要最小限の例のみ使用
  4. テンプレート化して再利用

問題: 意図しない出力

解決策:

  1. プロンプトの曖昧さを排除
  2. 出力形式を明示的に指定
  3. 除外すべき内容を明記
  4. Few-shot例で期待する出力を示す

問題: LLMが指示に従わない

解決策:

  1. 指示を箇条書きで明確に
  2. 重要な指示を強調(太字、UPPERCASE)
  3. 役割設定を明確に
  4. Few-shot例で正しい動作を示す

ベストプラクティス要約

  1. 明確性: タスクを曖昧さなく記述
  2. 具体性: 詳細、制約、形式を明記
  3. 構造化: 論理的に整理されたプロンプト
  4. Few-shot: 効果的な例を2-5個提供
  5. Chain-of-Thought: 複雑なタスクはステップ分割
  6. 出力形式: 厳密に指定(JSON、Markdown等)
  7. エッジケース: 異常系の処理を明記
  8. 役割設定: 適切なペルソナを定義
  9. トークン最適化: 簡潔だが完全な表現
  10. テスト: 複数の入力で一貫性を検証

バージョン情報

  • スキルバージョン: 1.0.0
  • 最終更新: 2025-11-22
  • 対応LLM: Claude, GPT-4, Gemini等

使用例まとめ

シンプルな改善

このプロンプトを改善してください:
「コードを書いてください。」

詳細な分析

以下のプロンプトを詳細に分析してください:

プロンプト:
{your_prompt}

分析項目:
- 明確性スコア(理由付き)
- 具体性スコア(理由付き)
- 完全性スコア(理由付き)
- 改善点リスト
- 改善されたプロンプト

A/Bテスト

プロンプトA と プロンプトB を比較評価してください。
テストケース: {test_cases}

評価レポートを生成してください。

このスキルで、プロンプトエンジニアリングを体系的に改善しましょう!