home / skills / ntaksh42 / agents / prompt-engineering-helper

prompt-engineering-helper skill

/.claude/skills/prompt-engineering-helper

This skill helps you optimize and test LLM prompts with evaluation, improvement suggestions, A/B testing, and reproducibility checks.

npx playbooks add skill ntaksh42/agents --skill prompt-engineering-helper

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
17.8 KB
---
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}

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

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

Overview

This skill helps optimize, test, and validate prompts for large language models to improve reliability and output quality. It provides targeted analysis, rewrite suggestions, A/B testing, and metrics-based scoring to make prompts clearer, more specific, and cost-efficient. Use it to enforce best practices like role prompting, output schema constraints, and token optimization.

How this skill works

The skill inspects prompt clarity, specificity, completeness, structure, and reproducibility using defined evaluation metrics. It generates concrete rewrite proposals, suggests few-shot examples, designs A/B test plans, and returns scored evaluation reports. It can also propose system message layouts, token-aware compressions, and stepwise chains for multi-step tasks.

When to use it

  • You need higher consistency or reproducibility from LLM outputs.
  • Designing prompts for production workflows or automation tasks.
  • Comparing prompt variants via A/B testing to choose the best performer.
  • Reducing token cost while maintaining output fidelity.
  • Building multi-step prompt chains or few-shot examples for complex tasks.

Best practices

  • Start prompts with a clear role and concise task statement (role prompting).
  • Specify output format and constraints explicitly (JSON, bullet list, limits).
  • Include 2–5 targeted few-shot examples for non-trivial tasks.
  • Break complex tasks into chain-of-thought or multi-step prompts to improve traceability.
  • Test multiple inputs and run reproducibility checks; lower temperature for analytic tasks.

Example use cases

  • Improve a vague user prompt into a strict JSON-output template for downstream parsing.
  • Run A/B tests on two summarization prompts across three articles and produce a comparative scorecard.
  • Optimize a long system prompt by moving static context to the system message and compressing the user prompt to reduce tokens.
  • Design a prompt chain for automated blog generation: topic -> outline -> draft -> edit.
  • Generate few-shot examples and select the most representative ones for sentiment analysis tasks.

FAQ

What evaluation metrics are used?

Clarity, Specificity, Completeness, Reproducibility, and Output Quality are scored typically on 0–10 scales.

Can it help reduce API costs?

Yes—by suggesting token-efficient rewrites, moving repeated context to system messages, and trimming redundant examples.

Does it support multimodal prompts?

Yes. It provides guidance for combining text, images, and structured data and recommends output schemas and example formats.