name: compound-eye
description: 複眼レビュー - 同じ指示を独立に割り当てた2つの eye へ同時に投げ、両者の回答を統合する。各 eye のプロバイダーは runtime.yaml（provider.targets.steps -> eye1 / eye2）で割り当てる。workflow 自身はプロバイダー名を持たない。
capabilities: readonly
max_steps: 10
initial_step: evaluate
steps:
  - name: evaluate
    tags:
      - review
    parallel:
      - name: eye1
        tags:
          - review
        edit: false
        persona: coder
        session: refresh
        policy:
          - architecture
          - review
        knowledge: architecture
        rules:
          - condition: done
          - condition: failed
        output_contracts:
          report:
            - name: eye1-review.md
              format: |
                ```markdown
                # Eye 1 レビュー結果

                ## 結論
                {1行の結論}

                ## 主要な発見
                - {発見1}
                - {発見2}

                ## 根拠
                - {file:line と理由}

                ## リスク / 注意点
                - {リスク}

                ## 推奨する次の一手
                - {アクション}
                ```
      - name: eye2
        tags:
          - review
        edit: false
        persona: coder
        session: refresh
        policy:
          - architecture
          - review
        knowledge: architecture
        rules:
          - condition: done
          - condition: failed
        output_contracts:
          report:
            - name: eye2-review.md
              format: |
                ```markdown
                # Eye 2 レビュー結果

                ## 結論
                {1行の結論}

                ## 主要な発見
                - {発見1}
                - {発見2}

                ## 根拠
                - {file:line と理由}

                ## リスク / 注意点
                - {リスク}

                ## 推奨する次の一手
                - {アクション}
                ```
    rules:
      - condition: any("error")
        next: evaluate
      - condition: any("done")
        next: synthesize
  - name: synthesize
    tags:
      - review
    edit: false
    persona: supervisor
    rules:
      - condition: synthesis complete
        next: COMPLETE
    instruction: |
      2つの eye が同じ指示に独立に回答した。runtime.yaml の割り当てによっては
      異なるプロバイダー・モデルである。両者の回答を統合せよ。

      **タスク:**
      1. Report Directory のレポートを読む
         - `eye1-review.md`（eye 1 の回答）
         - `eye2-review.md`（eye 2 の回答）
         両方のレポートが必須であり、いずれかの eye が error なら evaluate ステップを再試行する。
      2. 両方のレポートを比較して明確にする:
         - 一致している点
         - 食い違っている点
         - 片方だけが言及している点
      3. 統合した結論を出す

      **出力フォーマット:**
      ```markdown
      # 複眼レビュー統合

      ## 結論
      {統合した結論}

      ## 回答状況
      | Eye | 状況 |
      |-----|------|
      | Eye 1 | ✅ / ❌ |
      | Eye 2 | ✅ / ❌ |

      ## 一致点
      - {両者が一致した点}

      ## 相違点
      | 論点 | Eye 1 | Eye 2 |
      |------|-------|-------|
      | {論点} | {eye 1 の見解} | {eye 2 の見解} |

      ## 片方のみの発見
      - **Eye 1 のみ:** {eye 1 だけが言及した点}
      - **Eye 2 のみ:** {eye 2 だけが言及した点}

      ## 総合評価
      {両者を踏まえた総合評価}
      ```
    output_contracts:
      report:
        - name: synthesis.md
          format: |
            ```markdown
            # 複眼レビュー統合

            ## 結論
            {統合した結論}

            ## 回答状況
            | Eye | 状況 |
            |-----|------|
            | Eye 1 | ✅ / ❌ |
            | Eye 2 | ✅ / ❌ |

            ## 一致点
            - {両者が一致した点}

            ## 相違点
            | 論点 | Eye 1 | Eye 2 |
            |------|-------|-------|
            | {論点} | {eye 1 の見解} | {eye 2 の見解} |

            ## 片方のみの発見
            - **Eye 1 のみ:** {eye 1 だけが言及した点}
            - **Eye 2 のみ:** {eye 2 だけが言及した点}

            ## 総合評価
            {両者を踏まえた総合評価}
            ```
