FE_Test / static /prompts.ts
GitHub Actions
Deploy from GitHub Actions [test] - 2025-10-31 10:18:25
5f2aab6
export const qSummaryBase = `# 前提
「スコア分析結果」を踏まえ、自社LP({own_url})と他社LPの分析結果サマリを作成する。
以下のステップに従って要約を行いつつ、「OCR抽出情報」を活用して指摘内容を具体的に示して説得力を高めた回答を作り上げること。
回答の文末表現は常体とし、高校生でも分かるような言葉で出力すること。
# 競合優位点抽出(competitors_advantage)
## 作業指示
「スコア分析結果」にcategごとに、自社と最高点だった競合(1社の場合もあれば、同立で複数社の場合もある)の分析結果と点数(3点満点)とコメントを掲載してあります。%は合計の得点率です。1文目の社名は1の得点が高い順該当するもの全てを表示し、2行目以下も1の得点が高い競合LPがもつ優位点から順に出力すること。優位点は評価項目中自社よりも「score」の値が高い項目を抽出し、もし該当項目が無いときは競合LPの中で1の得点が最も高いLP中の「score」最高点をもつ項目のみ抽出し、評価されている点を出力すること。
## 出力形式
「[競合社名1]、[競合社名2]...の評価が高かった。<br><br>・ [競合社名1]と[競合社名2]は「[評価項目1]」という観点において、[優位点(adviceから30文字以上)]点が優位<br>・ [競合社名2]は「[評価項目2]」という観点において、[優位点(adviceから30文字以上)]点が優位」の形式でcompetitors_advantageを出力せよ。
# 自社長所/改善点抽出(own_company_advantage_and_advice)
## 作業指示
categごとに自社LPの優位点と改善点を述べよ。「score」が2以上の項目、または競合よりも値が高い項目を長所として抽出し、2未満の項目のうち値が小さいものを最大3つ改善点として抽出すること。
## 出力形式
「(categ)は競合と比較して点数が [高かった/平均的だった/低かった]。<br><br>【長所】<br>・ [評価項目1の長所(analysisから30文字以上)]<br>・ [評価項目2の優位点(analysisから30文字以上)]<br><br>【改善点】<br>・ [評価項目3の改善点(adviceから30文字以上)]<br>・ [評価項目4の改善点(adviceから30文字以上)]」の形式で出力せよ。
# 総括(total_analysis)
## 作業指示
「自社長所/改善点」の総括を「競合優位点(competitors_advantage)」と「自社長所/改善点(own_company_advantage_and_advice)」を踏まえて作成せよ。1文目は[FV/CTA/CONTENTS/CREATIVE/ACCESSIBILITY]の順で、自社LPの合計スコアが全体平均より低いカテゴリを最大3つ抽出すること。自社LPの改善点は「score」の値が最も低い項目から抽出すること。
## 出力形式
「自社LPは競合と比較すると[カテゴリ名1]、[カテゴリ名2]、[カテゴリ名3] に改善の余地がある。<br>[カテゴリ名1]:[改善点(30文字以上)]。[競合社名1]では[優位点(analysisから30文字以上)]点が優れていた。<br>[カテゴリ名2]:...。<br>[カテゴリ名3]:...。」の形式で出力せよ。
# スコア分析結果
{scores}
# OCR抽出情報
## 自社OCR
{own_ocr}
## 競合OCR
{competitor_ocrs}`;
export const swotBase = `以下に列挙した自社・競合のLP内訴求テーマを元にSWOT分析せよ
# 内部環境の生成条件
「自社テーマ」と「業界トレンド」を比較し、以下の基準で自社テーマを「強み」「弱み」に割り振り、それぞれ「ベネフィット視点」「心理的価値訴求」のアプローチで言い換えよ
- 業界トレンドに対応+差別化されている:強み(S)
- 業界トレンドに対応+差別化されていない:弱み(W)または中立
- 業界トレンドに非対応+トレンド重要度が高い(競合の7割以上に含まれている):弱み(W)
- 業界トレンドに非対応+差別化度が高い:強み(S)
# URLの割り振り方法
- 競合URLは一度ずつ割り振り、複数利用しないこと
- 差別化戦略:想定競合Urlの割り振りをせず空のリストを返せ
- 防衛戦略:「内部環境に含まれず、競合優位点」となるFVテーマを持つ競合URLを{st1_num}個割り当てよ
- 改善戦略:「内部環境の強みと、競合優位点」どちらのFVテーマも持つ競合URLを{st2_num}個割り当てよ
- 積極化戦略:「内部環境の強み」と近しいFVテーマを持つ競合URLを{st3_num}個割り当てよ
- wwwなど元のURLと異なる部分があれば元のURLを引用しなおせ
# 戦略名の生成条件
- 外部環境と内部環境情報のみを元に、CV数を増加させるための新たなLP戦略名称を20字以内で生成せよ
- 外部環境情報は、スコア点数が高い競合URLから抽出したものから優先利用すること
- 差別化戦略:利用しないが適当な文字列を生成せよ
- 防衛戦略:外部環境から「脅威」、内部環境から「弱み」情報を利用せよ
- 改善戦略:外部環境から 防衛戦略で利用しなかった「脅威」、内部環境から「強み」情報を利用せよ
- 積極化戦略:外部環境から「機会」、内部環境から「強み」情報を利用せよ
#自社
{own_theme}
#競合
{cmp_theme}`;
export const soPromptBase = `# 前提
以下に沿ったクリエイティブブリーフを、「戦略」と「顧客の瞬間」を軸にそれ以外の情報で補足して作成せよ
具体的な情報補完が必要な場合は、自社テーマから行うこと
戦略: {strategy_theme}
顧客の瞬間: 「{moment}
方針: {strategy_direction}
{swot_inner_type}: {swot_inner}
{swot_outer_type}: {swot_outer}
自社テーマ: {own_theme}
強み:{swot_strength}
弱み:{swot_weakness}
機会:{swot_chance}
脅威:{swot_threat}
# ステップ
1.「(テキスト)、(テキスト)」という読点を含んだ文章を、意味がつながるように自然な文章に修正せよ
2. 1から、ワードの繰り返しを取り除き、メタワードや改善効果の憶測表記を除去せよ(improved_proposition)
3. 訴求に使うメッセージ1,2,3を9文字で(appeal_word_1, appeal_word_2, appeal_word_3)
4. 提案根拠(reason): 1の提案根拠を、(improved_proposition)の情報のみを踏まえ、「新訴求の強調点」と{moment}の顧客へのアプローチ方法」を80文字で出力せよ。出力テキストの文末表現は常体とすること
6. 広告戦略(advertising_strategy): reasonとimproved_propositionを踏まえて、CV増加が見込まれる広告LP戦略を設計せよ。「xxxに関する訴求を中心に、[強調点]を強調した広告LPを展開し、[手段]ことで、[市場ニーズに該当するターゲット]をターゲットにする戦略を提案。[訴求テーマを踏まえた具体的なLPコミュニケーション]ことで、[ターゲット顧客へのコミュニケーション効果]を満たし、CVが今よりも増加する可能性がある。」の形式で200文字程度かつ平易な言葉のみを利用して1文にまとめること
7. 禁止ワード:「未来」「革命」「夢」に類する想像の幅を広げてしまうワード、「自社」「競合」「他社」「強化」に類するメタ的なワード、「xxx、xxx」という読点を含んだ文章、「訴求テーマ」「市場ニーズ」を使わないこと
`;
export const stPromptBase = `# 前提
以下に沿ったクリエイティブブリーフを、「戦略」と「顧客の瞬間」を軸にそれ以外の情報で補足して作成せよ
具体的な情報補完が必要な場合は、自社テーマから行うこと
戦略: {strategy_theme}
顧客の瞬間: 「{moment}
方針: {strategy_direction}
{swot_inner_type}: {swot_inner}
{swot_outer_type}: {swot_outer}
自社テーマ: {own_theme}
強み:{swot_strength}
弱み:{swot_weakness}
機会:{swot_chance}
脅威:{swot_threat}
# ステップ
1.「(テキスト)、(テキスト)」という読点を含んだ文章を、意味がつながるように自然な文章に修正せよ
2. 1から、ワードの繰り返しを取り除き、メタワードや改善効果の憶測表記を除去せよ(improved_proposition)
3. 訴求に使うメッセージ1,2,3を9文字で(appeal_word_1, appeal_word_2, appeal_word_3)
4. 提案根拠(reason): 1の提案根拠を、(improved_proposition)の情報のみを踏まえ、「新訴求の強調点」と{moment}の顧客へのアプローチ方法」を80文字で出力せよ。出力テキストの文末表現は常体とすること
6. 広告戦略(advertising_strategy): reasonとimproved_propositionを踏まえて、CV増加が見込まれる広告LP戦略を設計せよ。「xxxに関する訴求を中心に、[強調点]を強調した広告LPを展開し、[手段]ことで、[市場ニーズに該当するターゲット]をターゲットにする戦略を提案。[訴求テーマを踏まえた具体的なLPコミュニケーション]ことで、[ターゲット顧客へのコミュニケーション効果]を満たし、CVが今よりも増加する可能性がある。」の形式で200文字程度かつ平易な言葉のみを利用して1文にまとめること
7. 禁止ワード:「未来」「革命」「夢」に類する想像の幅を広げてしまうワード、「自社」「競合」「他社」「強化」に類するメタ的なワード、「xxx、xxx」という読点を含んだ文章、「訴求テーマ」「市場ニーズ」を使わないこと
`;
export const wtPromptBase = `# 前提
以下に沿ったクリエイティブブリーフを、「戦略」と「顧客の瞬間」を軸にそれ以外の情報で補足して作成せよ
具体的な情報補完が必要な場合は、自社テーマから行うこと
戦略: {strategy_theme}
顧客の瞬間: 「{moment}
方針: {strategy_direction}
{swot_inner_type}: {swot_inner}
{swot_outer_type}: {swot_outer}
自社テーマ: {own_theme}
強み:{swot_strength}
弱み:{swot_weakness}
機会:{swot_chance}
脅威:{swot_threat}
# ステップ
1.「(テキスト)、(テキスト)」という読点を含んだ文章を、意味がつながるように自然な文章に修正せよ
2. 1から、ワードの繰り返しを取り除き、メタワードや改善効果の憶測表記を除去せよ(improved_proposition)
3. 訴求に使うメッセージ1,2,3を9文字で(appeal_word_1, appeal_word_2, appeal_word_3)
4. 提案根拠(reason): 1の提案根拠を、(improved_proposition)の情報のみを踏まえ、「新訴求の強調点」と{moment}の顧客へのアプローチ方法」を80文字で出力せよ。出力テキストの文末表現は常体とすること
6. 広告戦略(advertising_strategy): reasonとimproved_propositionを踏まえて、CV増加が見込まれる広告LP戦略を設計せよ。「xxxに関する訴求を中心に、[強調点]を強調した広告LPを展開し、[手段]ことで、[市場ニーズに該当するターゲット]をターゲットにする戦略を提案。[訴求テーマを踏まえた具体的なLPコミュニケーション]ことで、[ターゲット顧客へのコミュニケーション効果]を満たし、CVが今よりも増加する可能性がある。」の形式で200文字程度かつ平易な言葉のみを利用して1文にまとめること
7. 禁止ワード:「未来」「革命」「夢」に類する想像の幅を広げてしまうワード、「自社」「競合」「他社」「強化」に類するメタ的なワード、「xxx、xxx」という読点を含んだ文章、「訴求テーマ」「市場ニーズ」を使わないこと
`;
export const momentGroupPromptBase = `## 前提
「情報」を元に「戦略」を「顧客の瞬間」のみに共感する言葉で強調し、以下を出力せよ
- LP提案者とクライアントが端的に理解しやすい20字程度の訴求テーマ
※足りない情報は「戦略概要」から補完すること
※単語・言い回しは「自社テーマ」の表現を守ること
- LP構成案を生成するAIにインプットさせるための具体的な訴求テーマ
- 広告LP戦略
- 「xxxに関する訴求を中心に、[強調点]を強調した広告LPを展開し、[手段]ことで、[顧客の瞬間に該当するターゲット]をターゲットにする戦略を提案。[LPでのコミュニケーション方法]ことで、[ターゲット顧客へのコミュニケーション効果]を満たし、CVが今よりも増加する可能性がある。」の形式で200文字程度かつ平易な言葉のみを利用して1文にまとめること
※表現は、自社テーマの範囲内で信頼性のある訴求にとどめ、提供情報に含まれていない数値(例:「●か月で成果が出る」など)や保証表現(例:「必ず変われる」など)は使用しないこと。
# 情報
## 戦略
{strategy_theme}
## 戦略根拠
{strategy_reason}
## 顧客の瞬間
{moment}
## 自社テーマ
{own_theme}`;
export const themeExtractionPromptBase = `# 前提
提供されたランディングページ(LP)のスクリーンショット画像とHTMLコンテンツを分析し、サイトのデザインテーマとカラー情報を抽出してください。
抽出した情報は、新しいLPのデザイン制作時のリファレンスとして活用されます。
# 分析対象
- スクリーンショット画像:{screenshot_image}
- HTMLコンテンツ:{html_content}
- 対象URL:{target_url}
# 出力要件
## 必須カラー情報
以下のカラー情報を16進数カラーコード(#RRGGBB形式)で抽出してください:
### primary_color
- メインブランドカラー
- ロゴやCTAボタンで使用されている主要色
- 最も目立つ色、ブランドアイデンティティを表す色
### secondary_color
- サブカラー
- primary_colorを補完する色
- 背景色やアクセント要素で使用されている色
### accent_color
- アクセントカラー
- 注意を引くために使用されている色
- ハイライトやアクション要素の色
### semantic_color
#### success_semantic_color
- 成功メッセージ、完了状態の色
#### warning_semantic_color
- 警告メッセージ、注意喚起の色
#### error_semantic_color
- エラーメッセージ、失敗状態の色
#### info_semantic_color
- 情報提示、ヒントの色
### background_color
#### primary_background_color
- 背景の基調色
- 最も使用面積の大きい背景色
#### secondary_background_color
- セクション区切り背景色
#### tertiary_background_color
- **抽出対象**: カード、コンテナ、強調エリアの背景色
- **抽出箇所**: ヒーローセクション、カードセクション、特徴セクションの背景色
- **抽出制約**: 元サイトに実在する色のみを抽出すること
#### overlay_background_color
- **抽出対象**: モーダル、オーバーレイの背景色
- **抽出箇所**: モーダルダイアログ、画像オーバーレイ、ドロップダウン背景
- **抽出制約**: 半透明の場合は不透明な等価色に変換すること
### text_color
#### primary_text_color
- テキストの主要色
- 本文で使用されている文字色
#### secondary_text_color
- 補助テキストカラー
#### disabled_text_color
- 無効状態のテキストカラー
#### inverse_text_color
- **抽出対象**: ダーク背景上のテキスト色
- **抽出箇所**: フッター、ヒーローセクション、ダークモード部分のテキスト
- **抽出制約**: 背景色とのコントラストが高い色を選択すること
## デザイン特性情報
### font_family
- 使用されているフォントの種類
- font-family値で提示
- font-family値が特定できない場合は「ゴシック体」「明朝体」「欧文フォント」「装飾フォント」等で分類
#### heading_font_family
- 見出し用
#### main_font_family
- 本文用
#### special_font_family
- 特殊用途
- コード、引用等
### design_style
- デザインテイストの分類
- 「モダン」「クラシック」「ミニマル」「ポップ」「エレガント」「カジュアル」「ビジネス」等
### layout_type
- レイアウトの特徴
- 「シンプル」「情報量多」「ビジュアル重視」「テキスト重視」等
## ブランド印象分析
### brand_impression
- サイトから受ける印象
- 「信頼性」「革新性」「親しみやすさ」「高級感」「安心感」「エネルギッシュ」等
- 複数該当する場合は配列で記載
### industry_characteristics
- 業界特性に基づく色彩傾向
- 該当業界のカラートレンドとの適合度を評価
# 出力形式
以下の2段階で回答してください:
## 1. 分析結果の説明
まず、視覚的分析の根拠を簡潔に説明してください。
## 2. 構造化データ(JSON)
次に、以下の形式で厳密なJSONデータのみを出力してください。
**重要**: JSONブロック内にはコメントや説明を一切含めないでください。
\`\`\`json
{
"colors": {
"primary_color": "#RRGGBB",
"secondary_color": "#RRGGBB",
"accent_color": "#RRGGBB",
"success_semantic_color": "#RRGGBB",
"warning_semantic_color": "#RRGGBB",
"error_semantic_color": "#RRGGBB",
"info_semantic_color": "#RRGGBB",
"primary_background_color": "#RRGGBB",
"secondary_background_color": "#RRGGBB",
"tertiary_background_color": "#RRGGBB",
"overlay_background_color": "#RRGGBB",
"primary_text_color": "#RRGGBB",
"secondary_text_color": "#RRGGBB",
"disabled_text_color": "#RRGGBB",
"inverse_text_color": "#RRGGBB"
},
"design": {
"heading_font_family": "font-family値かフォント分類",
"main_font_family": "font-family値かフォント分類",
"special_font_family": "font-family値かフォント分類",
"design_style": "デザインスタイル",
"layout_type": "レイアウト特徴"
},
"brand": {
"brand_impression": ["印象1", "印象2"],
"industry_characteristics": "業界特性の評価"
},
"analysis_notes": "分析時の特記事項や補足情報"
}
\`\`\`
# 出力時の重要な注意事項
- JSONブロック(\`\`\`json から \`\`\` まで)内には、絶対にコメント(//や/* */)を含めないでください
- JSONは標準のJSON形式に完全準拠してください
- 説明やコメントはJSONブロックの外で記述してください
- analysis_notesフィールドに分析根拠を記載してください
- カラーコードは必ず#から始まる6桁の16進数で記載
- 該当する色が明確でない場合は最も近い色を選択
- 主観的な判断は避け、視覚的な事実に基づいて分析すること
## カラーペアリング要件(アクセシビリティ確保)
以下の色ペアは視覚的にコントラストが十分であることを確認すること:
1. primary_text_color ↔ primary_background_color
2. secondary_text_color ↔ secondary_background_color
3. inverse_text_color ↔ tertiary_background_color
4. inverse_text_color ↔ overlay_background_color
5. inverse_text_color ↔ primary_color (フッター用)`;