app:
  description: 'Chatwork連携: 複数メッセージから(1)3行要約 (2)決定事項 (3)担当者・期限付きTODO (4)未解決議題を抽出するワークフロー'
  icon: 🤖
  icon_background: '#FFEAD5'
  mode: workflow
  name: Chatwork要約・TODO抽出（担当者・期限付き）
  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: Chatworkメッセージ要約・構造化
        type: llm
        model:
          provider: openai
          name: gpt-5-mini
          mode: chat
          completion_params:
            temperature: 0.2
        prompt_template:
        - role: system
          text: "あなたはChatworkの会議ログを要約・整理するアシスタントです。\n\n複数のチャットメッセージを読み、以下の4つを必ず日本語で出力してください：\n\
            (1) 3行要約\n(2) 決定事項の一覧\n(3) TODOリスト（担当者・期限付き）\n(4) 未解決の議題\n\n【特に重要：TODOの「担当者・期限付き」要件】\n\
            - TODOは、必ず「担当者」と「期限」の両方を明示してください。\n- 期限欄を「不明」「未定」「-」などにしてはいけません。\n- メッセージ内に「明日までに」「来週中」「今月末」「3日以内」などの相対的な表現がある場合は、\n\
            \  あなたの「仮定でよいので」、以下の方針で**具体的な日付（YYYY-MM-DD）」に変換してください**。\n\n【相対期限 → 具体日付への変換ルール（厳守）】\n\
            入力の先頭に必ず「基準日（会話の日付）」が含まれている想定で処理してください。\n例: 「基準日: 2026-04-02\\n[山田] ...」のような形式。\n\
            \n1. 「今日」       → 基準日\n2. 「明日」       → 基準日の1日後\n3. 「明後日」     → 基準日の2日後\n\
            4. 「来週中」     → 基準日から7日後（例: 基準日が2026-04-02なら2026-04-09）\n5. 「今週中」     →\
            \ 基準日の直後の金曜日を仮定（例: 木曜なら翌日の金曜）\n6. 「今月中」     → 基準日と同じ月の月末日\n7. 「来月中」  \
            \   → 基準日の翌月の月末日\n8. 「3日以内」   → 基準日から3日後\n9. 「1週間以内」 → 基準日から7日後\n10. それ以外のあいまいな表現:\n\
            \    - たとえ曖昧でも、必ず「あなたが合理的と考える具体日付」を1つ決めてYYYY-MM-DD形式で書いてください。\n    - どうしても難しい場合のみ、基準日の7日後をデフォルトとして使用してください。\n\
            \n【担当者の扱い】\n- 明確に名前が出ている場合（例:「佐藤さん、明日までに資料作成お願いします」）は、その名前を担当者にしてください。\n\
            - 複数名に依頼している場合は、可能な範囲で分解して、それぞれ別のTODO項目として列挙してください。\n- 担当者がまったく読み取れない場合は、「担当者:\
            \ 不明」とはせず、「担当者: チーム全体」など、\n  あなたが最も自然だと考える担当者名を仮定して記入してください。\n\n【TODO形式の指定】\n\
            - 箇条書きで、1件ごとに必ず以下の3要素を含めてください：\n  - 内容\n  - 担当者\n  - 期限（YYYY-MM-DD）\n\
            - 例:\n  - 内容: 新ノベルティ案のデザイン案作成 / 担当者: 佐藤 / 期限: 2026-04-03\n\n【出力フォーマット（厳守）】\n\
            以下の見出しと形式で、テキストとして出力してください。\n\n---出力開始---\n【3行要約】\n1. ...\n2. ...\n3.\
            \ ...\n\n【決定事項】\n- ...\n\n【TODOリスト（担当者・期限付き）】\n- 内容: ... / 担当者: ... /\
            \ 期限: YYYY-MM-DD\n- 内容: ... / 担当者: ... / 期限: YYYY-MM-DD\n\n【未解決の議題】\n\
            - ...\n---出力終了---\n\n制約:\n- 「TODOリスト（担当者・期限付き）」の各項目で、\n  期限を「不明」「未定」「-」などと書くことを絶対に避けてください。\n\
            - 相対的な期限表現があれば、必ず具体的な日付に変換して書いてください。\n- どの要素も空欄にせず、該当がない場合は「なし」と明示してください。\n\
            \n\n---\n\n【最終出力フォーマット (この指示が最優先)】\n最終出力は **読みやすい日本語の Markdown** で返してください。JSON\n\
            配列・オブジェクトをそのまま出力してはいけません。\n- 見出し (## / ###) でセクションを区切る\n- リスト (- / 1.)\
            \ や表 (| ... |) で構造化\n- 各項目の意図や根拠が分かるよう短い説明文を添える\n- 営業デモで顧客に直接見せられる体裁にする\n\
            \n(構造化されたデータ項目を内部で扱うのは構いませんが、出力時に Markdown\nに変換してください。)"
        - role: user
          text: '以下はChatworkのメッセージ履歴です。

            基準日（会話の日付）も含まれています。この基準日を使って相対的な期限を具体的な日付（YYYY-MM-DD）に変換してください。


            ---- メッセージここから ----

            {{#start.query#}}

            ---- メッセージここまで ----


            指示:

            - (1)3行要約

            - (2)決定事項

            - (3)TODOリスト（担当者・期限付き、期限は必ずYYYY-MM-DD）

            - (4)未解決の議題

            を、指定されたフォーマットで出力してください。

            '
        vision:
          enabled: false
        memory: null
        context:
          enabled: false
      height: 90
      id: llm1
      position:
        x: 380
        y: 282
      type: custom
      width: 244
    - 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
