name: coding
description: Lightweight development piece with planning and parallel reviews (plan -> implement -> parallel review -> complete)
piece_config:
  provider_options:
    codex:
      network_access: true
    opencode:
      network_access: true

max_movements: 20
initial_movement: plan
movements:
  - name: plan
    edit: false
    persona: planner
    knowledge: architecture
    allowed_tools:
      - Read
      - Glob
      - Grep
      - Bash
      - WebSearch
      - WebFetch
    rules:
      - condition: 要件が明確で実装可能
        next: implement
      - condition: ユーザーが質問をしている（実装タスクではない）
        next: COMPLETE
      - condition: 要件が不明確、情報不足
        next: ABORT
    instruction: plan
    output_contracts:
      report:
        - name: 00-plan.md
          format: plan

  - name: implement
    edit: true
    persona: coder
    policy:
      - coding
      - testing
    session: refresh
    knowledge: architecture
    allowed_tools:
      - Read
      - Glob
      - Grep
      - Edit
      - Write
      - Bash
      - WebSearch
      - WebFetch
    permission_mode: edit
    rules:
      - condition: 実装完了
        next: reviewers
      - condition: 実装未着手（レポートのみ）
        next: reviewers
      - condition: 判断できない、情報不足
        next: reviewers
      - condition: ユーザー入力が必要
        next: implement
        requires_user_input: true
        interactive_only: true
    instruction: implement
    output_contracts:
      report:
        - Scope: 02-coder-scope.md
        - Decisions: 03-coder-decisions.md

  - name: reviewers
    parallel:
      - name: ai_review
        edit: false
        persona: ai-antipattern-reviewer
        policy:
          - review
          - ai-antipattern
        allowed_tools:
          - Read
          - Glob
          - Grep
          - WebSearch
          - WebFetch
        rules:
          - condition: AI特有の問題なし
          - condition: AI特有の問題あり
        instruction: ai-review
        output_contracts:
          report:
            - name: 04-ai-review.md
              format: ai-review
      - 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: 05-architect-review.md
              format: architecture-review
    rules:
      - condition: all("AI特有の問題なし", "approved")
        next: COMPLETE
      - condition: any("AI特有の問題あり", "needs_fix")
        next: fix

  - name: fix
    edit: true
    persona: coder
    policy:
      - coding
      - testing
    knowledge: architecture
    allowed_tools:
      - Read
      - Glob
      - Grep
      - Edit
      - Write
      - Bash
      - WebSearch
      - WebFetch
    permission_mode: edit
    rules:
      - condition: 修正完了
        next: reviewers
      - condition: 判断できない、情報不足
        next: ABORT
    instruction: fix
