app:
  description: 人事向け：エンゲージメント／パルスサーベイの自由記述回答を自動で分類・要約し、カテゴリタグ、ネガポジ分布、組織課題領域、および四半期／月次レポート（要約と推奨施策）を生成するワークフロー。入力は改行区切りの自由記述群を1つのテキストフィールドにまとめて渡してください。
  icon: 📊
  icon_background: '#FFEAD5'
  mode: workflow
  name: エンゲージメント自由記述分類＆レポート自動化
  use_icon_as_answer_icon: false
kind: app
version: 0.6.0
workflow:
  conversation_variables: []
  environment_variables: []
  features:
    file_upload:
      image:
        enabled: false
    opening_statement: ''
    suggested_questions: []
    suggested_questions_after_answer:
      enabled: false
    text_to_speech:
      enabled: false
  graph:
    edges:
    - data:
        sourceType: start
        targetType: llm
      id: start-to-llm1
      source: start
      target: llm1
    - data:
        sourceType: llm
        targetType: end
      id: llm1-to-end
      source: llm1
      target: end
    nodes:
    - data:
        title: 開始
        type: start
        variables:
        - label: query
          max_length: 2048
          options: []
          required: true
          type: paragraph
          variable: query
      height: 90
      id: start
      position:
        x: 80
        y: 282
      type: custom
      width: 244
    - data:
        title: 自由記述分類・集計 (LLM)
        type: llm
        model:
          provider: openai
          name: gpt-5-mini
          mode: chat
          completion_params:
            temperature: 0.2
        prompt_template:
        - role: system
          text: 'あなたは企業の人事・組織開発におけるエンゲージメント調査・パルスサーベイの自由記述分析の専門家です。

            入力された複数の自由記述回答（改行区切り）を解析し、以下の項目を厳密なJSON形式で出力してください。

            出力は必ず1つのJSONオブジェクトのみとし、追加の説明文や余分なテキストを付けないこと。

            JSONのフィールド仕様:

            - total_responses: 整数。入力回答の総数。

            - time_window: 文字列。入力文中に四半期や月などの期間情報があれば抽出、なければ "unspecified"。

            - tags: 配列。各要素はオブジェクト {"name":タグ名 (string), "count": 件数 (integer), "examples":
            [代表コメント(最大3件) (string)]}

            - sentiment_distribution: オブジェクト {"positive": 整数, "neutral": 整数, "negative":
            整数, "unknown": 整数}

            - org_issues: 配列。各要素はオブジェクト {"area": 組織課題領域名 (string, 例: 給与・処遇, マネジメント,
            キャリア, ワークライフバランス, コミュニケーション, 評価制度), "count": 件数 (integer), "description":
            短い要約(1-2文), "examples": [代表コメント(最大3件)]}

            - recommended_actions: 配列。各要素はオブジェクト {"action": 短い施策文 (string), "priority":
            "high"|"medium"|"low", "rationale": 1文程度の理由}

            - quarterly_summary: 文字列。四半期/直近期間の主要所見を3-5文で簡潔に説明（経営/人事向け要約）

            - methodology: 文字列。解析上の注意点・集計ルール（1-2文）

            解析ルール:

            - 同義語・近接語は統合する（例: 昇給/給与/賃金→給与）。上位概念でタグ付けすること。

            - 否定語や文脈により感情判定が困難な場合は "unknown" にカウントすること。

            - 件数は原文の回答数ベースで集計すること（1回答が複数タグに該当する場合はそれぞれカウントして良い）。

            - 代表コメントはできるだけ原文を切らずに抜粋すること。



            ---


            【最終出力フォーマット (この指示が最優先)】

            最終出力は **読みやすい日本語の Markdown** で返してください。JSON

            配列・オブジェクトをそのまま出力してはいけません。

            - 見出し (## / ###) でセクションを区切る

            - リスト (- / 1.) や表 (| ... |) で構造化

            - 各項目の意図や根拠が分かるよう短い説明文を添える

            - 営業デモで顧客に直接見せられる体裁にする


            (構造化されたデータ項目を内部で扱うのは構いませんが、出力時に Markdown

            に変換してください。)'
        - role: user
          text: '入力（改行区切りで複数回答が含まれます）:


            {{#start.query#}}


            タスク:

            - 上記の全回答を解析し、systemで指定したJSON形式で出力してください。

            - tagsは主要タグ8～12件程度に絞る。org_issuesは重要度の高い順に並べる。

            - recommended_actionsは実行可能な施策を上位5件程度出し、優先度を付けてください。

            - 出力は必ずJSONのみ。余計な注釈や追加テキストは付けないでください。

            '
        vision:
          enabled: false
        memory: null
        context:
          enabled: false
      height: 200
      id: llm1
      position:
        x: 380
        y: 282
      type: custom
      width: 320
    - data:
        title: 終了
        type: end
        outputs:
        - value_selector:
          - llm1
          - text
          variable: result
      height: 90
      id: end
      position:
        x: 680
        y: 282
      type: custom
      width: 244
  hash: null
