name: frontend-review
description: Frontend-focused review (structure, modularization, component design, security, QA)
piece_config:
  provider_options:
    codex:
      network_access: true
    opencode:
      network_access: true
max_movements: 10
initial_movement: gather

movements:
  - name: gather
    edit: false
    persona: planner
    allowed_tools:
      - Read
      - Glob
      - Grep
      - Bash
      - WebSearch
      - WebFetch
    instruction: gather-review
    output_contracts:
      report:
        - name: review-target.md
          format: review-gather
    rules:
      - condition: Review target information gathered
        next: reviewers
      - condition: Unable to identify review target, insufficient information
        next: ABORT

  - name: reviewers
    parallel:
      - name: arch-review
        edit: false
        persona: architecture-reviewer
        policy: review
        knowledge:
          - architecture
          - frontend
        allowed_tools:
          - Read
          - Glob
          - Grep
          - WebSearch
          - WebFetch
        instruction: review-arch
        output_contracts:
          report:
            - name: architect-review.md
              format: architecture-review
        rules:
          - condition: approved
          - condition: needs_fix

      - name: frontend-review
        edit: false
        persona: frontend-reviewer
        policy: review
        knowledge: frontend
        allowed_tools:
          - Read
          - Glob
          - Grep
          - WebSearch
          - WebFetch
        instruction: review-frontend
        output_contracts:
          report:
            - name: frontend-review.md
              format: frontend-review
        rules:
          - condition: approved
          - condition: needs_fix

      - name: security-review
        edit: false
        persona: security-reviewer
        policy: review
        knowledge: security
        allowed_tools:
          - Read
          - Glob
          - Grep
          - WebSearch
          - WebFetch
        instruction: review-security
        output_contracts:
          report:
            - name: security-review.md
              format: security-review
        rules:
          - condition: approved
          - condition: needs_fix

      - name: qa-review
        edit: false
        persona: qa-reviewer
        policy:
          - review
          - qa
        allowed_tools:
          - Read
          - Glob
          - Grep
          - WebSearch
          - WebFetch
        instruction: review-qa
        output_contracts:
          report:
            - name: qa-review.md
              format: qa-review
        rules:
          - condition: approved
          - condition: needs_fix

    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
    pass_previous_response: false
    instruction: supervise
    output_contracts:
      report:
        - name: supervisor-validation.md
          format: supervisor-validation
        - name: summary.md
          format: summary
          use_judge: false
    rules:
      - condition: Review integration complete
        next: COMPLETE
