name: review-only
description: レビュー専用ピース - コードをレビューするだけで編集は行わない
piece_config:
  provider_options:
    codex:
      network_access: true
    opencode:
      network_access: true

max_movements: 10
initial_movement: plan
movements:
  - name: plan
    edit: false
    persona: planner
    allowed_tools:
      - Read
      - Glob
      - Grep
      - WebSearch
      - WebFetch
    rules:
      - condition: レビュー対象が明確
        next: reviewers
      - condition: ユーザーが質問をしている（レビュータスクではない）
        next: COMPLETE
      - condition: 要件が不明確、情報不足
        next: ABORT
        appendix: |
          確認事項:
          - {質問1}
          - {質問2}
    instruction_template: |
      ## Previous Response (superviseからの差し戻し時)
      {previous_response}

      レビュー依頼を分析し、レビュー方針を立ててください。

      **これはレビュー専用ピースです。** コード編集は行いません。
      以下に集中してください:
      1. レビュー対象のファイル/モジュールを特定
      2. レビューの重点領域を決定（アーキテクチャ、セキュリティ、AIパターン等）
      3. 依頼に記載された特定の懸念事項を整理

      **PR番号が記載されている場合**（例: "PR #42"）、レビュアーが
      PRの変更ファイルに集中できるよう計画に含めてください。
  - name: reviewers
    parallel:
      - name: arch-review
        edit: false
        persona: architecture-reviewer
        policy: review
        knowledge: architecture
        allowed_tools:
          - Read
          - Glob
          - Grep
          - WebSearch
          - WebFetch
        rules:
          - condition: approved
          - condition: needs_fix
        instruction: review-arch
        output_contracts:
          report:
            - name: 01-architect-review.md
              format: architecture-review
      - name: security-review
        edit: false
        persona: security-reviewer
        policy: review
        knowledge: security
        allowed_tools:
          - Read
          - Glob
          - Grep
          - WebSearch
          - WebFetch
        rules:
          - condition: approved
          - condition: needs_fix
        instruction: review-security
        output_contracts:
          report:
            - name: 02-security-review.md
              format: security-review
      - name: ai-review
        edit: false
        persona: ai-antipattern-reviewer
        policy:
          - review
          - ai-antipattern
        allowed_tools:
          - Read
          - Glob
          - Grep
          - WebSearch
          - WebFetch
        rules:
          - condition: approved
          - condition: needs_fix
        instruction: review-ai
        output_contracts:
          report:
            - name: 03-ai-review.md
              format: ai-review
    rules:
      - condition: all("approved")
        next: supervise
      - condition: any("needs_fix")
        next: supervise
  - name: supervise
    edit: false
    persona: supervisor
    policy: review
    allowed_tools:
      - Read
      - Glob
      - Grep
      - WebSearch
      - WebFetch
    rules:
      - condition: approved, PR comment requested
        next: pr-comment
      - condition: approved
        next: COMPLETE
      - condition: rejected
        next: ABORT
    instruction_template: |
      ## レビュー結果
      {previous_response}

      **これはレビュー専用ピースです。** テスト実行やビルドは行わないでください。
      レビュー結果を統合し、最終サマリーを作成する役割です。

      **やること:**
      1. Report Directory内の全レビューレポートを読む
      2. アーキテクチャ・セキュリティ・AIレビューの結果を統合
      3. 統合レビューサマリーと総合判定を作成
      4. ルーティング判断:
         - タスクにPRへのコメント投稿が含まれている場合
           （例: "PRにコメントして"、"PRにレビュー結果を投稿"）
           → `pr-comment` ムーブメントへ（condition: "approved, PR comment requested"）
         - ローカルレビューのみ → COMPLETE（condition: "approved"）
         - 重大な問題が見つかった場合 → ABORT（condition: "rejected"）

      **Review Summary出力契約:**
      ```markdown
      # レビューサマリー

      ## 総合判定: APPROVE / REJECT

      ## サマリー
      {2-3文で全レビュー結果を統合}

      ## レビュー結果
      | レビュー | 結果 | 主要な発見 |
      |---------|------|-----------|
      | アーキテクチャ | APPROVE/REJECT | {概要} |
      | セキュリティ | APPROVE/REJECT | {概要} |
      | AIアンチパターン | APPROVE/REJECT | {概要} |

      ## 要注意の問題
      | # | 重大度 | ソース | 場所 | 問題 |
      |---|--------|--------|------|------|
      | 1 | High | セキュリティ | `file:line` | 説明 |

      ## 改善提案
      - {全レビューからの統合提案}
      ```
    output_contracts:
      report:
        - Review Summary: 04-review-summary.md
  - name: pr-comment
    edit: false
    persona: pr-commenter
    allowed_tools:
      - Read
      - Glob
      - Grep
      - Bash
    rules:
      - condition: コメント投稿完了
        next: COMPLETE
      - condition: コメント投稿失敗
        next: COMPLETE
    instruction_template: |
      ## レビューサマリー
      {previous_response}

      レビュー結果をPRにコメントとして投稿してください。

      **手順:**
      1. タスク説明からPR番号を抽出
      2. Report Directory内の全レビューレポートを読む:
         - `01-architect-review.md`（アーキテクチャレビュー）
         - `02-security-review.md`（セキュリティレビュー）
         - `03-ai-review.md`（AIアンチパターンレビュー）
         - `04-review-summary.md`（統合サマリー）
      3. 重要度でフィルタリングし、Critical/High/Mediumの指摘をインラインコメントとして投稿
      4. 以下のフォーマットでサマリーコメントを投稿:

      ```
      ## 自動レビューサマリー

      {04-review-summary.mdからの総合判定とサマリー}

      ### レビュー結果
      | レビュー | 結果 |
      |---------|------|
      | アーキテクチャ | {結果} |
      | セキュリティ | {結果} |
      | AIアンチパターン | {結果} |

      ### 主要な発見
      {重要な指摘のリスト}

      ### 改善提案
      {統合された提案}

      ---
      *[takt](https://github.com/toruticas/takt) review-only ピースで生成*
      ```
