mcpField
P
prompt-engineer-toolkit

prompt-engineer-toolkit

github.com/alirezarezvaniエージェントワークフロー28.9k628 回インストール2 日前に更新
リポジトリ

prompt-engineer-toolkit について

prompt-engineer-toolkitは、プロンプトをテスト可能な本番資産としてバージョン管理するチーム向けのスキルです。構造化されたA/B評価、スコアリング、差分確認、回帰テストの手順を提供します。

主な機能

  1. 01構造化ケースによるプロンプトA/Bテスト
  2. 02網羅性、安全性、形式のスコアリング
  3. 03変更履歴と変更ログの保持
  4. 04編集内容を確認するバージョン差分
  5. 05プロンプト更新時の回帰テスト手順

活用シーン

  1. 01リリース前の候補プロンプト比較
  2. 02チーム内のプロンプト編集レビュー
  3. 03モデル変更後のプロンプト再テスト

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/alirezarezvani/claude-skills --skill prompt-engineer-toolkit

インストール後、Claude Code で/prompt-engineer-toolkitを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
references/
evaluation-rubric.md
prompt-templates.md
technique-guide.md
scripts/
prompt_tester.py
prompt_versioner.py

詳細

プロンプトエンジニアリングツールキット

概要

このスキルを使うと、場当たり的な草案から、再現可能なテスト、バージョン管理、回帰への安全性を備えた本番用アセットへとプロンプトを移行できます。直感よりも、測定可能な品質を重視します。信頼性の高い出力が必要な新しい LLM 機能をリリースするとき、モデルや指示の変更後にプロンプトの品質が低下したとき、複数のチームメンバーがプロンプトを編集し、履歴や差分が必要なとき、本番環境への展開に向けて根拠に基づいてプロンプトを選択したいとき、または環境間で一貫したプロンプトガバナンスを実現したいときに適用してください。

主な機能

  • 構造化されたテストケースを使ったプロンプトの A/B 評価
  • 指示への準拠、関連性、安全性チェックの定量的なスコアリング
  • 不変の履歴と変更履歴を用いたプロンプトのバージョン追跡
  • 挙動に影響する編集を確認するためのプロンプト差分
  • 再利用可能なプロンプトテンプレートと選択ガイダンス
  • モデルやプロンプトの更新に対応した回帰しやすいワークフロー

主なワークフロー

1. プロンプトの A/B テストを実行する

JSON テストケースを準備して実行します。

python3 scripts/prompt_tester.py \
  --prompt-a-file prompts/a.txt \
  --prompt-b-file prompts/b.txt \
  --cases-file testcases.json \
  --runner-cmd 'my-llm-cli --prompt {prompt} --input {input}' \
  --format text

入力には、stdin/--input の JSON ペイロードも使用できます。

2. 根拠に基づいて最適なものを選ぶ

テスターはケースごとに出力を採点し、次の項目を集計します。

  • 期待される内容の網羅性
  • 禁止コンテンツへの違反
  • 正規表現/フォーマットへの準拠
  • 出力の長さが妥当かどうか

スコアの高いプロンプトをベースライン候補として使用し、その後、回帰テストスイートを実行します。

3. プロンプトをバージョン管理する
# Add version
python3 scripts/prompt_versioner.py add \
  --name support_classifier \
  --prompt-file prompts/support_v3.txt \
  --author alice

# Diff versions
python3 scripts/prompt_versioner.py diff --name support_classifier --from-version 2 --to-version 3

# Changelog
python3 scripts/prompt_versioner.py changelog --name support_classifier
4. 回帰テストのサイクル
  1. ベースラインのバージョンを保存します。
  2. プロンプトの編集案を作成します。
  3. A/B テストを再実行します。
  4. スコアと安全性の制約が改善した場合にのみ昇格させます。

スクリプトのインターフェース

  • python3 scripts/prompt_tester.py --help
    • stdin または --input からプロンプト/ケースを読み込みます
    • 外部ランナーコマンドを任意で指定できます
    • テキストまたは JSON のメトリクスを出力します
  • python3 scripts/prompt_versioner.py --help
    • プロンプト履歴(add、list、diff、changelog)を管理します
    • メタデータとコンテンツのスナップショットをローカルに保存します

注意点、ベストプラクティス、レビューチェックリスト

次のような間違いを避けてください。

  1. 単一ケースの出力だけでプロンプトを選ぶこと。現実的で、エッジケースを豊富に含むテストスイートを使用してください。
  2. プロンプトとモデルを同時に変更すること。必ず変数を個別に検証してください。
  3. 評価基準に must_not_contain(禁止コンテンツ)チェックが含まれていないこと。
  4. バージョンのメタデータ、作成者、変更理由を付けずにプロンプトを編集すること。
  5. 新しいプロンプトバージョンをデプロイする前に、意味的な差分の確認を省略すること。
  6. あるベンチマークを最適化する一方でエッジケースを悪化させること。テストスイート全体を追跡してください。
  7. モデルを切り替えた後、ベースラインの A/B テストスイートを再実行しないこと。

プロンプトを昇格させる前に、次の項目を確認してください。

  • タスクの意図が明確かつ一義的です。
  • 出力スキーマ/フォーマットが明確です。
  • 安全性と除外に関する制約が明確です。
  • 矛盾する指示がありません。
  • 不必要な冗長さにつながるトークンがありません。
  • A/B スコアが向上し、違反件数がゼロのままです。

参考資料

  • references/prompt-templates.md — 本番用マーケティングテンプレート 6 種(広告コピー、メールシーケンス、ソーシャル投稿への再利用、ランディングページのセクション、SEO メタデータ、ブランドボイスに合わせたリライト)と汎用的な構成要素。各テンプレートは prompt_tester.py で評価できるように作成されています。
  • references/technique-guide.md — マーケティングタスク向けの手法選択表と、マーケティングチーム向け LLM ガバナンススタック(主張の管理、開示ルール、データ境界、人によるレビューのゲート)
  • references/evaluation-rubric.md — 機械的な採点の重み、合格基準、マーケティング品質の評価項目、テストスイートの設計、評価におけるアンチパターン
  • README.md

評価の設計

各テストケースでは、次の項目を定義してください。

  • input:本番環境に近い現実的な入力
  • expected_contains:必須のマーカー/内容
  • forbidden_contains:禁止される表現や安全でないコンテンツ
  • expected_regex:必須の構造パターン

これにより、プロンプトの各バリエーションを決定的に採点できます。

バージョニングポリシー

  • 機能ごとにセマンティックなプロンプト識別子を使用します(support_classifier、ad_copy_shortform)。
  • すべての改訂で、作成者と変更内容のメモを記録します。
  • 過去のバージョンは決して上書きしません。
  • 新しいプロンプトを本番環境に昇格する前に、差分を確認します。

ロールアウト戦略

  1. ベースラインとなるプロンプトのバージョンを作成します。
  2. 候補のプロンプトを提案します。
  3. 同じケースを対象に A/B テストを実行します。
  4. 勝者の平均スコアが向上し、違反件数がゼロの場合に限り、昇格させます。
  5. リリース後のフィードバックを追跡し、新たな失敗事例をテストスイートに反映します。

コメント