name: review-fix-backend
description: バックエンド特化レビュー＋修正ループ（構造・モジュール化・ヘキサゴナルアーキテクチャ・セキュリティ・コーディング）
all_steps:
  rules:
    - ref: findings-handling
      position: before_instruction
    - ref: plain-terminology
      position: before_instruction

max_steps: 30
facet_pools:
  security-review-facets:
    uses: security-review-facets
initial_step: gather
loop_monitors:
  - cycle:
      - reviewers
      - final-gate
      - remediation
    threshold: 3
    judge:
      input_reports:
        - from_step: reviewers
          reports: all
          history: {previous: 2}
        - from_step: remediation
          reports: [review-resolution.md, fix-plan.md, fix-report.md, fix-verification.md]
          history: {previous: 2}
      persona: supervisor
      instruction: loop-monitor-reviewers-fix
      rules:
        - condition: 健全（修正進捗があり、報告内容も収束している）
          next: reviewers
        - condition: 修正未完了または報告未収束だが、次のレビュー・修正が実行可能である
          next: reviewers
        - condition: 現行ループでは収束せず、最終ゲートの判定が必要である
          next: final-gate

steps:
  - name: gather
    uses: review-gather-to-reviewers
    rules:
      - condition: レビュー対象の情報収集完了
        next: reviewers
      - condition: レビュー対象を特定できない、情報不足
        next: ABORT

  - name: reviewers
    input_reports:
      from_step: remediation
      reports:
        - fix-plan.md
        - fix-report.md
        - fix-verification.md
      optional_if_unrun: true
    uses: review-fix-backend-reviewers
    with:
      architecture_review_instruction: review-arch
      coding_review_instruction: review-coding
      security_review_instruction: review-security
    rules:
      self:
        - condition: any("error")
          next: reviewers
        - condition: all("approved")
          next: final-gate
        - condition: any("needs_fix")
          next: remediation
      parallel:
        arch-review:
          - condition: approved
          - condition: needs_fix
        coding-review:
          - condition: approved
          - condition: needs_fix
        security-review:
          - condition: approved
          - condition: needs_fix

  - name: final-gate
    description: 現在のコードと前段の報告から要件充足と指摘の解消を確認し、完了・修正・再計画を判定する
    input_reports:
      from_step: remediation
      reports:
        - review-resolution.md
      optional_if_unrun: true
    kind: workflow_call
    call: final-gate
    args:
      supervise_knowledge:
        - backend
        - security
        - architecture
      supervise_policy:
        - contract-change
        - backend
        - architecture
    rules:
      - condition: COMPLETE
        next: COMPLETE
      - condition: needs_fix
        next: remediation
      - condition: need_replan
        next: ABORT
      - condition: ABORT
        next: ABORT
  - name: remediation
    input_reports:
      - from_step: reviewers
        reports: all
        history: {previous: 2}
    uses: review-remediation
    with:
      plan_policy:
        - coding
        - testing
        - review
      fix_policy:
        - coding
        - testing
        - architecture
        - backend
      verification_policy:
        - coding
        - testing
        - review
      fix_knowledge:
        - backend
        - security
        - architecture
    rules:
      - condition: COMPLETE
        next: reviewers
      - condition: no_fix
        next: final-gate
      - condition: need_replan
        next: final-gate
      - condition: ABORT
        next: ABORT
