# Idea: Eval Harness para Runs Autônomos e Renomeação do Workflow
## Rastreabilidade
- **Origem**: Solicitação do usuário via `/orchestration`
- **Orquestração**: `eval-harness-runs-autonomos`
- **Etapa**: 1 - Idea
- **Data**: 2026-07-21
## Visão Geral
Atualmente, o motor autônomo `sdd auto` e os workflows executam pipelines SDD e registram eventos e artefatos. O arquivo `sdd.config.yaml` estabelece metas de eficácia, como `efficacy_targets.artifact_eval_pass_rate: 1.0`, mas essa métrica não é avaliada deterministicamente nem exigida em ambiente de CI/release.
Esta proposta introduz o comando determinístico `sdd eval harness`, que executa a validação de gates em artefatos salvos de runs autônomos, calcula o pass-rate por estágio, grava o resultado estruturado em `.sdd/evaluations.jsonl` e bloqueia releases (`sdd ci --strict-release`) caso o pass-rate esteja abaixo da meta. Além disso, padronizamos e renomeamos estritamente a referência de `agentic-sdd-loop` para `workflow`.
## Problema
1. **Falta de enforcement em CI**: O valor de `artifact_eval_pass_rate` no `sdd.config.yaml` é declarativo, mas nunca verificado durante a entrega ou release.
2. **Avaliações manuais e isoladas**: `sdd eval stage` avalia artefatos pontuais manualmente, mas não existe um harness automático para avaliar a qualidade global de um run autônomo encerrado.
3. **Métrica não persistida**: O arquivo `.sdd/evaluations.jsonl` existe na especificação da arquitetura, mas não é populado automaticamente pelo harness.
4. **Nomenclatura inconsistente**: O termo `agentic-sdd-loop` é legado e deve ser renomeado estritamente para `workflow`.
## Solução Proposta
1. **Comando `sdd eval harness`**:
- Aceita `--run <run-id>` para reexecutar validações determinísticas de gates contra os artefatos salvos do run/orquestração.
- Quando `--run` é omitido, avalia por padrão a orquestração/run mais recente. Suporta `--all` para re-avaliar o histórico de runs.
- Calcula a taxa de sucesso (`pass_rate`) por stage e global.
- Grava cada avaliação em `.sdd/evaluations.jsonl` com timestamp, run_id, pass_rate, stages_evaluated e veredito.
2. **Gate de Release em `sdd ci --strict-release`**:
- Lê `efficacy_targets.artifact_eval_pass_rate` de `sdd.config.yaml`.
- Verifica se a última avaliação no `evaluations.jsonl` atende ou supera a meta exigida (ex: 1.0 = 100%).
- Bloqueia a liberação (exit code != 0) com mensagem clara caso a meta não seja atingida.
3. **Renomeação Estrita de `agentic-sdd-loop`**:
- Renomear todas as menções de `agentic-sdd-loop` para `workflow` na CLI, documentação, subagentes e comandos do client.
## Escopo do MVP
- Subcomando `sdd eval harness` no CLI Rust com suporte a `--run <id>`, `--all` e execução padrão no run mais recente.
- Leitura e execução dos esquemas/validadores de artefatos existentes (`sdd validate-artifact` / `artifact_schemas`).
- Gravação de registros em `.sdd/evaluations.jsonl`.
- Integração do gate de validação do pass-rate no comando `sdd ci --strict-release`.
- Refatoração estrita do identificador `agentic-sdd-loop` para `workflow`.
## Fora do MVP
- Chamadas a LLMs externas para re-avaliação semântica pesada durante o harness (o harness utiliza as regras determinísticas e schemas locais de artefatos).
- Dashboard web exclusivo para exibições visuais do evaluations.jsonl (usar relatórios CLI / `sdd trace` ou MCP).
## Hipóteses e Validação
- **Hipótese 1**: Runs autônomos válidos passarão 100% pelos gates determinísticos de artefato.
- *Validação*: Executar `sdd eval harness` sobre runs existentes na suíte de testes.
- **Hipótese 2**: Integrar o gate em `sdd ci --strict-release` impede que regressões na qualidade dos artefatos cheguem a produção.
- *Validação*: Criar teste unitário/integração simulação de CI falhando quando o pass_rate for inferior ao configurado.
## Decisões Decididas no Grill
- **Renomeação**: Renomear estritamente de `agentic-sdd-loop` para `workflow` em todo o código e docs sem manter aliases legados.
- **Comportamento Padrão de `sdd eval harness`**: Avaliar o run mais recente se `--run` for omitido; suportar `--all` para varrer o histórico.
## Diagramas
```mermaid
flowchart TD
A[sdd auto / workflow] -->|Gera artefatos & salva| B[docs/slug/]
B --> C[sdd eval harness]
C -->|Executa gates determinísticos| D[Cálculo de Pass Rate por Stage]
D -->|Persiste| E[.sdd/evaluations.jsonl]
E --> F[sdd ci --strict-release]
G[sdd.config.yaml: efficacy_targets] --> F
F -->|pass_rate >= target| H[Release Aprovada]
F -->|pass_rate < target| I[Release Bloqueada]
```