# =============================================================================
# COPY REVIEW LOOP — Workflow Iterativo (Loop Max 3)
# Pipeline: @apolo escreve → @zeus valida → @temis compliance → loop/escala
# =============================================================================

workflow:
  id: copy-review-loop
  name: "Copy Review Loop"
  version: "1.0"
  description: >
    Loop iterativo de revisao de copy com max 3 iteracoes. @apolo escreve,
    @zeus valida usando copy-quality-gate (score 1-15), @temis revisa
    compliance. Se score insuficiente, volta para @apolo com feedback
    especifico. Na 3a falha, escala para @atena que decide entre
    reescrever do zero, aprovar com ressalvas ou pivotar angulo.

  trigger: manual
  estimated_duration: "1-2 dias uteis"
  priority: high
  type: iterative_loop

  # ---------------------------------------------------------------------------
  # FASES
  # ---------------------------------------------------------------------------
  phases:
    - phase_1: "Escrita Inicial"
    - phase_2: "Validacao de Qualidade"
    - phase_3: "Revisao de Compliance"
    - phase_loop: "Iteracao de Ajustes (max 3)"
    - phase_escalation: "Escalacao para @atena"

  # ---------------------------------------------------------------------------
  # CONFIGURACAO DO LOOP
  # ---------------------------------------------------------------------------
  loop_config:
    max_iterations: 3
    current_iteration: 0
    loop_start_step: escrever_copy
    loop_end_step: compliance_review
    exit_conditions:
      - "Score >= 10 E compliance aprovado"
      - "max_iterations atingido (escala para @atena)"
    state_file: "docs/copy-review/loop-state.yaml"

  # ---------------------------------------------------------------------------
  # SCORING
  # ---------------------------------------------------------------------------
  scoring:
    system: "copy-quality-gate"
    scale: "1-15"
    dimensions:
      - name: "Clareza"
        weight: 1
        description: "Mensagem clara e facilmente compreensivel"
      - name: "Persuasao"
        weight: 2
        description: "Poder de convencimento e gatilhos emocionais"
      - name: "Mecanismo"
        weight: 2
        description: "Mecanismo unico bem explicado e convincente"
      - name: "Proof Elements"
        weight: 1
        description: "Provas sociais, dados, cases, autoridade"
      - name: "CTA"
        weight: 1
        description: "Call-to-action claro, urgente e especifico"
      - name: "Consistencia"
        weight: 1
        description: "Tom e narrativa consistentes do inicio ao fim"
      - name: "Hook"
        weight: 2
        description: "Poder de atencao nos primeiros 30 segundos"
    thresholds:
      aprovado:
        min_score: 10
        action: "Prosseguir para compliance"
        label: "APROVADO"
      ajustes:
        min_score: 7
        max_score: 9
        action: "Retornar para @apolo com feedback especifico"
        label: "AJUSTES"
      reescrever:
        min_score: 0
        max_score: 6
        action: "Escalar para @atena"
        label: "REESCREVER"

  # ---------------------------------------------------------------------------
  # SEQUENCIA DE STEPS
  # ---------------------------------------------------------------------------
  sequence:

    # =========================================================================
    # FASE 1 — ESCRITA INICIAL (@apolo)
    # =========================================================================
    - step: escrever_copy
      phase: 1
      agent: "@apolo"
      action: "*escrever-copy"
      description: >
        Escreve a copy solicitada seguindo o briefing, posicionamento e
        avatar definidos. Na primeira iteracao, escreve do zero. Nas
        iteracoes subsequentes, aplica o feedback especifico do @zeus
        sobre os pontos fracos identificados.
      inputs:
        - "Briefing da copy (tipo: VSL, ad, email, pagina)"
        - "docs/estrategia/avatar-profile.md (se existir)"
        - "docs/estrategia/posicionamento.md (se existir)"
        - "docs/copy-review/feedback-iteration-{n}.md (se iteracao > 1)"
      outputs:
        - "docs/copy-review/copy-draft-v{n}.md"
      requires: null
      next: validar_copy
      on_failure: "Usar template de copy padrao como base"
      validation:
        type: checklist
        criteria: >
          Copy completa conforme tipo solicitado, todas as secoes
          presentes, mecanismo unico articulado, CTA definido.
      iteration_behavior:
        first_iteration: "Escrever do zero seguindo briefing"
        subsequent_iterations: >
          Aplicar feedback especifico de docs/copy-review/feedback-iteration-{n-1}.md.
          Focar nas dimensoes com score mais baixo. NAO reescrever
          secoes que ja atingiram score alto.

    # =========================================================================
    # FASE 2 — VALIDACAO DE QUALIDADE (@zeus)
    # =========================================================================
    - step: validar_copy
      phase: 2
      agent: "@zeus"
      action: "*copy-quality-gate"
      description: >
        Avalia a copy usando o sistema de scoring copy-quality-gate.
        Score de 1-15 baseado em 7 dimensoes. Gera feedback detalhado
        e especifico para cada dimensao abaixo do esperado.
      inputs:
        - "docs/copy-review/copy-draft-v{n}.md"
        - "docs/estrategia/avatar-profile.md (se existir)"
        - "docs/estrategia/posicionamento.md (se existir)"
      outputs:
        - "docs/copy-review/quality-report-v{n}.md"
        - "docs/copy-review/feedback-iteration-{n}.md (se score < 10)"
      requires: escrever_copy
      next: decision_gate
      on_failure: "Gerar report com score minimo e feedback generico"
      validation:
        type: verdict
        criteria: >
          Score >= 10: APROVADO — prosseguir para compliance.
          Score 7-9: AJUSTES — gerar feedback especifico por dimensao.
          Score < 7: REESCREVER — escalar se 3a iteracao.

    - step: decision_gate
      phase: 2
      agent: "@zeus"
      action: "*decision-gate"
      description: >
        Ponto de decisao baseado no score e numero de iteracoes.
        Roteia o fluxo para o proximo passo correto: compliance
        (se aprovado), loop (se ajustes), ou escalacao (se 3a falha
        ou score muito baixo).
      inputs:
        - "docs/copy-review/quality-report-v{n}.md"
        - "Numero da iteracao atual"
      outputs:
        - "docs/copy-review/decision-log.md (append)"
      requires: validar_copy
      next: "condicional"
      on_failure: "Escalar para @atena em caso de erro no gate"
      validation:
        type: routing
        criteria: >
          Roteamento baseado em score e iteracao.
        routing_rules:
          - condition: "score >= 10"
            next: compliance_review
            log: "APROVADO — prosseguindo para compliance"
          - condition: "score 7-9 AND iteracao < 3"
            next: escrever_copy
            log: "AJUSTES — iteracao {n+1}, feedback enviado para @apolo"
            feedback_required:
              - "Dimensoes com score abaixo da media"
              - "Exemplo concreto do problema"
              - "Sugestao especifica de melhoria"
              - "Secao exata que precisa de ajuste"
          - condition: "score < 7 AND iteracao < 3"
            next: escrever_copy
            log: "REESCREVER — problemas graves identificados"
            feedback_required:
              - "Listagem completa de problemas"
              - "Recomendacao de reescrita por secao"
              - "Referencia ao briefing original"
          - condition: "iteracao >= 3 AND score < 10"
            next: escalacao_atena
            log: "ESCALACAO — 3 iteracoes sem aprovacao"

    # =========================================================================
    # FASE 3 — REVISAO DE COMPLIANCE (@temis)
    # =========================================================================
    - step: compliance_review
      phase: 3
      agent: "@temis"
      action: "*compliance-copy-review"
      description: >
        Revisao de compliance da copy aprovada: claims verificaveis,
        promessas legais, disclaimers necessarios, CONAR, CDC,
        politicas da plataforma de destino (Meta, Google, WhatsApp).
      inputs:
        - "docs/copy-review/copy-draft-v{n}.md (versao aprovada)"
        - "docs/copy-review/quality-report-v{n}.md"
        - "Plataforma de destino (Meta Ads, Google Ads, email, WhatsApp)"
      outputs:
        - "docs/copy-review/compliance-report.md"
        - "docs/copy-review/copy-final.md (se aprovado)"
        - "docs/copy-review/compliance-fixes.md (se ajustes necessarios)"
      requires: decision_gate
      next: finalizar_copy
      on_failure: "Listar violacoes e retornar para @apolo corrigir"
      validation:
        type: verdict
        criteria: >
          APROVADO: Copy em compliance total — gerar copy final.
          AJUSTES: Correcoes menores de compliance — @apolo aplica.
          BLOQUEADO: Violacoes criticas — retornar para ajustes.
        compliance_checks:
          - "Claims de resultado com evidencia ou disclaimer"
          - "Garantia conforme CDC"
          - "Sem linguagem discriminatoria"
          - "Politica de plataforma respeitada"
          - "Disclaimers obrigatorios presentes"

    - step: finalizar_copy
      phase: 3
      agent: "@apolo"
      action: "*finalizar-copy"
      description: >
        Aplica ajustes finais de compliance (se houver) e gera a versao
        final da copy pronta para uso. Mantem a eficacia da copy
        enquanto atende todas as exigencias de compliance.
      inputs:
        - "docs/copy-review/compliance-fixes.md (se existir)"
        - "docs/copy-review/copy-draft-v{n}.md"
      outputs:
        - "docs/copy-review/copy-final.md"
        - "docs/copy-review/loop-summary.md"
      requires: compliance_review
      next: null
      on_failure: "Gerar copy final com disclaimers mesmo sem ajustes perfeitos"
      validation:
        type: checklist
        criteria: >
          Copy final com: todas as correcoes de compliance aplicadas,
          score de qualidade mantido, versao final marcada, log de
          iteracoes documentado.

    # =========================================================================
    # FASE ESCALACAO — DECISAO @atena
    # =========================================================================
    - step: escalacao_atena
      phase: escalation
      agent: "@atena"
      action: "*decidir-escalacao-copy"
      description: >
        @atena recebe o historico completo das 3 iteracoes, scores,
        feedbacks e decide entre 3 opcoes: reescrever do zero com novo
        angulo, aprovar com ressalvas documentadas, ou pivotar o angulo
        estrategico completamente.
      inputs:
        - "docs/copy-review/copy-draft-v1.md"
        - "docs/copy-review/copy-draft-v2.md"
        - "docs/copy-review/copy-draft-v3.md"
        - "docs/copy-review/quality-report-v1.md"
        - "docs/copy-review/quality-report-v2.md"
        - "docs/copy-review/quality-report-v3.md"
        - "docs/copy-review/decision-log.md"
        - "docs/estrategia/posicionamento.md (se existir)"
      outputs:
        - "docs/copy-review/escalation-decision.md"
      requires: decision_gate
      next: "condicional"
      on_failure: "Aprovar com ressalvas como fallback minimo"
      validation:
        type: decision
        criteria: >
          @atena deve escolher uma das 3 opcoes com justificativa.
        options:
          - id: reescrever_zero
            label: "Reescrever do Zero"
            description: >
              Descarta todas as versoes e reinicia o loop com novo
              angulo estrategico. Reset do contador de iteracoes.
            next_step: escrever_copy
            resets_iteration: true
            max_resets: 1
            requires: "Novo angulo definido por @atena"

          - id: aprovar_ressalvas
            label: "Aprovar com Ressalvas"
            description: >
              Aprova a melhor versao (maior score) com ressalvas
              documentadas. Segue para compliance com notas.
            next_step: compliance_review
            requires: "Lista de ressalvas documentada"

          - id: pivotar_angulo
            label: "Pivotar Angulo"
            description: >
              Muda completamente o angulo estrategico. Requer novo
              posicionamento antes de reiniciar o loop.
            next_step: null
            triggers_workflow: "Novo briefing estrategico necessario"
            requires: "Justificativa do pivot e novo angulo sugerido"

  # ---------------------------------------------------------------------------
  # CONFIGURACAO GLOBAL
  # ---------------------------------------------------------------------------
  config:
    max_iterations: 3
    max_resets: 1
    scoring_system: "copy-quality-gate"
    approval_threshold: 10
    adjustment_threshold: 7
    compliance_required: true
    track_iteration_history: true

  failure_handling:
    global_escalation: "@atena"
    on_max_iterations: "Escalar para @atena com historico completo"
    on_compliance_block: "Retornar para @apolo com fixes especificos"
    on_critical_failure: "Pausar loop, preservar estado, notificar usuario"
