{
  "evaluations": [
    {
      "blocking_steps": [
        "ui-explain: faltam sourceHash"
      ],
      "evidence": [
        "docs-source: fonte documental declarada",
        "docs-read: decisao legivel",
        "mcp-reconcile: blocker Docs classificado"
      ],
      "next_actions": [
        "classificar cada resposta como real, simulatedInstitutional, fixture, stale, partial ou blocked"
      ],
      "passed_steps": 3,
      "score": 75,
      "status": "util",
      "title": "Decisao canonica de Docs",
      "total_steps": 4,
      "workflow_id": "docs-canonical-decision"
    },
    {
      "blocking_steps": [
        "identity-org: faltam organizationId, tenant",
        "identity-user: faltam actorId, session, role",
        "integracoes-smoke: faltam usage",
        "support-diagnostic: faltam nextAction"
      ],
      "evidence": [
        "business-entitlement: uso permitido",
        "integracoes-session: segredo nao exposto",
        "compliance-redaction: auditoria segura"
      ],
      "next_actions": [
        "executar varredura de segredo, mascaramento e politica de campos proibidos",
        "classificar cada resposta como real, simulatedInstitutional, fixture, stale, partial ou blocked"
      ],
      "passed_steps": 3,
      "score": 43,
      "status": "atencao",
      "title": "BYOK live controlado por tenant",
      "total_steps": 7,
      "workflow_id": "byok-live-controlled"
    },
    {
      "blocking_steps": [
        "quota-source: faltam quota, franquia",
        "billing-link: faltam reconciliation",
        "product-isolation: faltam blockerId",
        "support-message: faltam nextAction"
      ],
      "evidence": [
        "plan-source: plano unico"
      ],
      "next_actions": [
        "executar varredura de segredo, mascaramento e politica de campos proibidos",
        "classificar cada resposta como real, simulatedInstitutional, fixture, stale, partial ou blocked"
      ],
      "passed_steps": 1,
      "score": 20,
      "status": "bloqueado",
      "title": "Gate comercial unico por Business",
      "total_steps": 5,
      "workflow_id": "business-commercial-gate"
    },
    {
      "blocking_steps": [
        "screen-instance: faltam viewInstance, screenData",
        "source-hashes: faltam sourcePayloadHash, sourceRecordsHash",
        "gpt-explain: faltam gptExplainable",
        "docs-contract: faltam contractVersion, schemaVersion"
      ],
      "evidence": [
        "ui-render: painel confiavel"
      ],
      "next_actions": [
        "promover leitura Docs responseReady minima ou registrar excecao catalogOnly deliberada"
      ],
      "passed_steps": 1,
      "score": 20,
      "status": "bloqueado",
      "title": "Painel humano com mesma fonte do GPT",
      "total_steps": 5,
      "workflow_id": "mcp-panel-same-source"
    },
    {
      "blocking_steps": [
        "role-matrix: faltam role",
        "allow-case: faltam allow, 200",
        "deny-case: faltam 403, forbidden",
        "audit-case: faltam auditId, traceId",
        "support-case: faltam nextAction"
      ],
      "evidence": [],
      "next_actions": [
        "executar varredura de segredo, mascaramento e politica de campos proibidos",
        "classificar cada resposta como real, simulatedInstitutional, fixture, stale, partial ou blocked"
      ],
      "passed_steps": 0,
      "score": 0,
      "status": "bloqueado",
      "title": "Identity com matriz RBAC de negacao",
      "total_steps": 5,
      "workflow_id": "identity-rbac-denial"
    },
    {
      "blocking_steps": [
        "policy: faltam retention",
        "consent: faltam consent, actorId",
        "redaction: faltam masked",
        "audit: faltam auditId"
      ],
      "evidence": [
        "docs: memoria institucional"
      ],
      "next_actions": [
        "classificar cada resposta como real, simulatedInstitutional, fixture, stale, partial ou blocked"
      ],
      "passed_steps": 1,
      "score": 20,
      "status": "bloqueado",
      "title": "Cadeia de evidencia Compliance",
      "total_steps": 5,
      "workflow_id": "compliance-evidence-chain"
    },
    {
      "blocking_steps": [
        "classify: faltam severity, domain",
        "handoff: faltam handoff, owner",
        "resolve: faltam resolved"
      ],
      "evidence": [
        "open: ticket criado",
        "audit: cadeia completa"
      ],
      "next_actions": [
        "classificar cada resposta como real, simulatedInstitutional, fixture, stale, partial ou blocked"
      ],
      "passed_steps": 2,
      "score": 40,
      "status": "atencao",
      "title": "Incidente Customer Ops completo",
      "total_steps": 5,
      "workflow_id": "customer-ops-incident"
    },
    {
      "blocking_steps": [
        "plugin-test: faltam expected",
        "wrangler-auth: faltam whoami",
        "bindings: faltam bindings, secrets",
        "routes: faltam deploy",
        "logs: faltam tail"
      ],
      "evidence": [],
      "next_actions": [
        "executar varredura de segredo, mascaramento e politica de campos proibidos"
      ],
      "passed_steps": 0,
      "score": 0,
      "status": "bloqueado",
      "title": "Operacao Cloudflare por wrangler",
      "total_steps": 5,
      "workflow_id": "cloudflare-wrangler-operations"
    },
    {
      "blocking_steps": [
        "planned-state: faltam planned, catalogOnly"
      ],
      "evidence": [
        "endpoint: runtime basico",
        "contract: surface auditavel",
        "mcp-register: control-plane ciente",
        "ui-readiness: status humano"
      ],
      "next_actions": [
        "classificar cada resposta como real, simulatedInstitutional, fixture, stale, partial ou blocked"
      ],
      "passed_steps": 4,
      "score": 80,
      "status": "util",
      "title": "Promocao controlada de Intelligence",
      "total_steps": 5,
      "workflow_id": "intelligence-promotion"
    },
    {
      "blocking_steps": [
        "version: faltam contractVersion, schemaVersion",
        "compat: faltam compatibilityVersion, breakingChanges",
        "rollback: faltam previousVersion",
        "docs: faltam changelog, migrationNotes"
      ],
      "evidence": [
        "smoke: prova tecnica"
      ],
      "next_actions": [
        "classificar cada resposta como real, simulatedInstitutional, fixture, stale, partial ou blocked",
        "promover leitura Docs responseReady minima ou registrar excecao catalogOnly deliberada"
      ],
      "passed_steps": 1,
      "score": 20,
      "status": "bloqueado",
      "title": "Release com rollback e contrato",
      "total_steps": 5,
      "workflow_id": "release-and-rollback"
    }
  ],
  "summary": [
    "Workflows avaliados: 10",
    "Workflows prontos/uteis: 2",
    "Workflows bloqueados: 6",
    "Score medio de workflow: 32"
  ],
  "workflows": [
    {
      "expected_artifacts": [
        "contrato Docs",
        "readiness reconciliado",
        "evidencia HTTP",
        "OS de continuidade"
      ],
      "platforms": [
        "docs",
        "mcps",
        "ui",
        "compliance"
      ],
      "primary_profile": "planejamento_estrategico",
      "purpose": "Resolver ambiguidade entre catalogOnly, responseReady minimo e excecao formal.",
      "risk_if_missing": "Docs continua como blocker global ambiguo.",
      "steps": [
        {
          "human_output": "fonte documental declarada",
          "owner_platform": "docs",
          "required_signals": [
            "docs",
            "canonical",
            "contrato"
          ],
          "step_id": "docs-source",
          "title": "Identificar fonte documental canonica",
          "validation": "abrir contrato Docs"
        },
        {
          "human_output": "decisao legivel",
          "owner_platform": "docs",
          "required_signals": [
            "responseReady",
            "catalogOnly",
            "excecao"
          ],
          "step_id": "docs-read",
          "title": "Promover leitura minima ou declarar excecao",
          "validation": "executar leitura ou registrar decisao"
        },
        {
          "human_output": "blocker Docs classificado",
          "owner_platform": "mcps",
          "required_signals": [
            "readiness",
            "blocker",
            "docs"
          ],
          "step_id": "mcp-reconcile",
          "title": "Reconciliar readiness MCP",
          "validation": "comparar readiness global"
        },
        {
          "human_output": "painel e GPT explicam igual",
          "owner_platform": "ui",
          "required_signals": [
            "sameSource",
            "panelReady",
            "sourceHash"
          ],
          "step_id": "ui-explain",
          "title": "Explicar estado para painel e GPT",
          "validation": "validar mesma fonte"
        }
      ],
      "title": "Decisao canonica de Docs",
      "workflow_id": "docs-canonical-decision"
    },
    {
      "expected_artifacts": [
        "credentialRef",
        "auditId",
        "usage",
        "redaction check",
        "diagnostico"
      ],
      "platforms": [
        "identity",
        "business",
        "integracoes",
        "compliance",
        "customer_ops"
      ],
      "primary_profile": "tecnico",
      "purpose": "Provar credencial real sem vazamento, com usuario, organizacao, entitlement, smoke e consumo.",
      "risk_if_missing": "Integracao parece pronta, mas nao e autosservico real.",
      "steps": [
        {
          "human_output": "tenant rastreavel",
          "owner_platform": "identity",
          "required_signals": [
            "organizationId",
            "tenant"
          ],
          "step_id": "identity-org",
          "title": "Criar organizacao de teste",
          "validation": "criar organizacao"
        },
        {
          "human_output": "ator autorizado",
          "owner_platform": "identity",
          "required_signals": [
            "actorId",
            "session",
            "role"
          ],
          "step_id": "identity-user",
          "title": "Criar usuario e sessao",
          "validation": "assumir usuario"
        },
        {
          "human_output": "uso permitido",
          "owner_platform": "business",
          "required_signals": [
            "entitlement",
            "productId",
            "plan"
          ],
          "step_id": "business-entitlement",
          "title": "Vincular produto e entitlement",
          "validation": "consultar entitlement"
        },
        {
          "human_output": "segredo nao exposto",
          "owner_platform": "integracoes",
          "required_signals": [
            "BYOK",
            "credentialRef"
          ],
          "step_id": "integracoes-session",
          "title": "Criar sessao BYOK",
          "validation": "gerar credentialRef"
        },
        {
          "human_output": "provider validado",
          "owner_platform": "integracoes",
          "required_signals": [
            "smoke",
            "readonly",
            "usage"
          ],
          "step_id": "integracoes-smoke",
          "title": "Executar smoke readonly",
          "validation": "rodar smoke"
        },
        {
          "human_output": "auditoria segura",
          "owner_platform": "compliance",
          "required_signals": [
            "redaction",
            "audit",
            "trace"
          ],
          "step_id": "compliance-redaction",
          "title": "Validar nao vazamento",
          "validation": "varrer relatorios"
        },
        {
          "human_output": "suporte orientado",
          "owner_platform": "customer_ops",
          "required_signals": [
            "diagnostic",
            "nextAction"
          ],
          "step_id": "support-diagnostic",
          "title": "Criar diagnostico para falha",
          "validation": "simular falha"
        }
      ],
      "title": "BYOK live controlado por tenant",
      "workflow_id": "byok-live-controlled"
    },
    {
      "expected_artifacts": [
        "entitlement",
        "invoice",
        "usage",
        "blocker matrix",
        "mensagem de suporte"
      ],
      "platforms": [
        "business",
        "finance",
        "integracoes",
        "public",
        "customer_ops"
      ],
      "primary_profile": "financeiro",
      "purpose": "Garantir que plano, franquia, consumo e bloqueio venham de Business.",
      "risk_if_missing": "Produto pode ser vendido ou bloqueado por regra divergente.",
      "steps": [
        {
          "human_output": "plano unico",
          "owner_platform": "business",
          "required_signals": [
            "plano",
            "entitlement"
          ],
          "step_id": "plan-source",
          "title": "Definir plano como fonte Business",
          "validation": "consultar plano"
        },
        {
          "human_output": "limite claro",
          "owner_platform": "business",
          "required_signals": [
            "quota",
            "usage",
            "franquia"
          ],
          "step_id": "quota-source",
          "title": "Materializar franquia e excedente",
          "validation": "simular consumo"
        },
        {
          "human_output": "fatura rastreavel",
          "owner_platform": "finance",
          "required_signals": [
            "invoice",
            "reconciliation"
          ],
          "step_id": "billing-link",
          "title": "Reconciliar cobranca Finance",
          "validation": "gerar extrato"
        },
        {
          "human_output": "impacto isolado",
          "owner_platform": "business",
          "required_signals": [
            "productId",
            "blockerId"
          ],
          "step_id": "product-isolation",
          "title": "Isolar blocker por produto",
          "validation": "listar blockers"
        },
        {
          "human_output": "cliente orientado",
          "owner_platform": "customer_ops",
          "required_signals": [
            "support",
            "nextAction"
          ],
          "step_id": "support-message",
          "title": "Gerar mensagem humana de bloqueio",
          "validation": "validar mensagem"
        }
      ],
      "title": "Gate comercial unico por Business",
      "workflow_id": "business-commercial-gate"
    },
    {
      "expected_artifacts": [
        "viewInstance",
        "source hashes",
        "screen contract",
        "evidencia HTTP"
      ],
      "platforms": [
        "mcps",
        "ui",
        "docs",
        "identity",
        "business"
      ],
      "primary_profile": "administrador_empresa",
      "purpose": "Impedir divergencia entre UI, MCP e explicacao do GPT.",
      "risk_if_missing": "Painel e GPT podem mostrar verdades diferentes.",
      "steps": [
        {
          "human_output": "payload rastreavel",
          "owner_platform": "mcps",
          "required_signals": [
            "viewInstance",
            "screenData"
          ],
          "step_id": "screen-instance",
          "title": "Criar instancia administrativa",
          "validation": "criar instancia"
        },
        {
          "human_output": "mesma fonte",
          "owner_platform": "mcps",
          "required_signals": [
            "sourcePayloadHash",
            "sourceRecordsHash"
          ],
          "step_id": "source-hashes",
          "title": "Gerar hashes de fonte e registros",
          "validation": "comparar hashes"
        },
        {
          "human_output": "painel confiavel",
          "owner_platform": "ui",
          "required_signals": [
            "panelReady",
            "sameSource"
          ],
          "step_id": "ui-render",
          "title": "Renderizar UI sem backend paralelo",
          "validation": "validar tela"
        },
        {
          "human_output": "resposta coerente",
          "owner_platform": "mcps",
          "required_signals": [
            "gptExplainable",
            "sameSource"
          ],
          "step_id": "gpt-explain",
          "title": "Explicar a mesma instancia pelo GPT",
          "validation": "pedir explicacao"
        },
        {
          "human_output": "documentacao viva",
          "owner_platform": "docs",
          "required_signals": [
            "contractVersion",
            "schemaVersion"
          ],
          "step_id": "docs-contract",
          "title": "Publicar contrato da tela",
          "validation": "exportar contrato"
        }
      ],
      "title": "Painel humano com mesma fonte do GPT",
      "workflow_id": "mcp-panel-same-source"
    },
    {
      "expected_artifacts": [
        "matriz RBAC",
        "allow evidence",
        "deny evidence",
        "auditId",
        "diagnostico"
      ],
      "platforms": [
        "identity",
        "compliance",
        "mcps",
        "customer_ops"
      ],
      "primary_profile": "juridico",
      "purpose": "Provar permissoes permitidas e negadas por papel, organizacao e escopo.",
      "risk_if_missing": "Controle de acesso fica baseado em caminho feliz e nao em governanca real.",
      "steps": [
        {
          "human_output": "papel claro",
          "owner_platform": "identity",
          "required_signals": [
            "role",
            "scope",
            "permission"
          ],
          "step_id": "role-matrix",
          "title": "Publicar matriz de papeis",
          "validation": "listar papeis"
        },
        {
          "human_output": "acao liberada",
          "owner_platform": "identity",
          "required_signals": [
            "allow",
            "200"
          ],
          "step_id": "allow-case",
          "title": "Testar caminho permitido",
          "validation": "executar allow"
        },
        {
          "human_output": "acao bloqueada",
          "owner_platform": "identity",
          "required_signals": [
            "deny",
            "403",
            "forbidden"
          ],
          "step_id": "deny-case",
          "title": "Testar caminho negado",
          "validation": "executar deny"
        },
        {
          "human_output": "evidencia juridica",
          "owner_platform": "compliance",
          "required_signals": [
            "auditId",
            "traceId"
          ],
          "step_id": "audit-case",
          "title": "Registrar auditId da decisao",
          "validation": "consultar audit"
        },
        {
          "human_output": "suporte seguro",
          "owner_platform": "customer_ops",
          "required_signals": [
            "diagnostic",
            "nextAction"
          ],
          "step_id": "support-case",
          "title": "Explicar negacao para suporte",
          "validation": "gerar diagnostico"
        }
      ],
      "title": "Identity com matriz RBAC de negacao",
      "workflow_id": "identity-rbac-denial"
    },
    {
      "expected_artifacts": [
        "policy",
        "consent record",
        "redaction report",
        "audit evidence",
        "docs hash"
      ],
      "platforms": [
        "compliance",
        "identity",
        "docs",
        "mcps"
      ],
      "primary_profile": "juridico",
      "purpose": "Ligar politica, consentimento, redaction, audit e retencao.",
      "risk_if_missing": "A plataforma nao prova governanca juridica de longo prazo.",
      "steps": [
        {
          "human_output": "regra clara",
          "owner_platform": "compliance",
          "required_signals": [
            "policy",
            "retention"
          ],
          "step_id": "policy",
          "title": "Publicar politica aplicavel",
          "validation": "validar politica"
        },
        {
          "human_output": "consentimento auditavel",
          "owner_platform": "compliance",
          "required_signals": [
            "consent",
            "actorId"
          ],
          "step_id": "consent",
          "title": "Registrar consentimento quando aplicavel",
          "validation": "consultar consentimento"
        },
        {
          "human_output": "sem segredo",
          "owner_platform": "compliance",
          "required_signals": [
            "redaction",
            "masked"
          ],
          "step_id": "redaction",
          "title": "Aplicar redaction em campos sensiveis",
          "validation": "rodar redaction"
        },
        {
          "human_output": "cadeia de custodia",
          "owner_platform": "compliance",
          "required_signals": [
            "auditId",
            "evidenceId"
          ],
          "step_id": "audit",
          "title": "Gerar auditId e evidenceId",
          "validation": "consultar evidencia"
        },
        {
          "human_output": "memoria institucional",
          "owner_platform": "docs",
          "required_signals": [
            "contrato",
            "hash"
          ],
          "step_id": "docs",
          "title": "Documentar contrato de privacidade",
          "validation": "validar docs"
        }
      ],
      "title": "Cadeia de evidencia Compliance",
      "workflow_id": "compliance-evidence-chain"
    },
    {
      "expected_artifacts": [
        "ticket",
        "classification",
        "handoff",
        "resolution",
        "audit trail"
      ],
      "platforms": [
        "customer_ops",
        "identity",
        "business",
        "integracoes",
        "compliance"
      ],
      "primary_profile": "suporte",
      "purpose": "Abrir, diagnosticar, encaminhar, resolver e auditar incidente.",
      "risk_if_missing": "Suporte perde historico e proxima acao em falhas recorrentes.",
      "steps": [
        {
          "human_output": "ticket criado",
          "owner_platform": "customer_ops",
          "required_signals": [
            "incident",
            "open"
          ],
          "step_id": "open",
          "title": "Abrir incidente",
          "validation": "criar incidente"
        },
        {
          "human_output": "prioridade clara",
          "owner_platform": "customer_ops",
          "required_signals": [
            "severity",
            "domain"
          ],
          "step_id": "classify",
          "title": "Classificar origem e severidade",
          "validation": "classificar"
        },
        {
          "human_output": "responsavel definido",
          "owner_platform": "customer_ops",
          "required_signals": [
            "handoff",
            "owner"
          ],
          "step_id": "handoff",
          "title": "Encaminhar para owner",
          "validation": "encaminhar"
        },
        {
          "human_output": "solucao rastreavel",
          "owner_platform": "customer_ops",
          "required_signals": [
            "resolved",
            "evidenceId"
          ],
          "step_id": "resolve",
          "title": "Resolver com evidencia",
          "validation": "fechar incidente"
        },
        {
          "human_output": "cadeia completa",
          "owner_platform": "compliance",
          "required_signals": [
            "audit",
            "trace"
          ],
          "step_id": "audit",
          "title": "Auditar ciclo",
          "validation": "consultar audit"
        }
      ],
      "title": "Incidente Customer Ops completo",
      "workflow_id": "customer-ops-incident"
    },
    {
      "expected_artifacts": [
        "plugin attempt",
        "wrangler status",
        "bindings",
        "routes",
        "health evidence"
      ],
      "platforms": [
        "integracoes",
        "mcps",
        "ui",
        "public",
        "gettys"
      ],
      "primary_profile": "tecnico",
      "purpose": "Validar runtime real por wrangler, tratando plugin como teste esperado.",
      "risk_if_missing": "Cloudflare fica dependente de plugin experimental ou sem prova live.",
      "steps": [
        {
          "human_output": "premissa cumprida",
          "owner_platform": "integracoes",
          "required_signals": [
            "plugin Cloudflare",
            "expected"
          ],
          "step_id": "plugin-test",
          "title": "Registrar tentativa do plugin",
          "validation": "registrar tentativa"
        },
        {
          "human_output": "identidade operacional",
          "owner_platform": "integracoes",
          "required_signals": [
            "wrangler",
            "whoami"
          ],
          "step_id": "wrangler-auth",
          "title": "Validar autenticacao wrangler quando houver trabalho real",
          "validation": "wrangler whoami"
        },
        {
          "human_output": "runtime configurado",
          "owner_platform": "integracoes",
          "required_signals": [
            "bindings",
            "secrets"
          ],
          "step_id": "bindings",
          "title": "Verificar bindings e secrets",
          "validation": "wrangler secret/list"
        },
        {
          "human_output": "rota viva",
          "owner_platform": "integracoes",
          "required_signals": [
            "routes",
            "deploy"
          ],
          "step_id": "routes",
          "title": "Validar rotas e deploy",
          "validation": "wrangler deploy/check"
        },
        {
          "human_output": "diagnostico real",
          "owner_platform": "integracoes",
          "required_signals": [
            "tail",
            "health"
          ],
          "step_id": "logs",
          "title": "Coletar logs/health",
          "validation": "wrangler tail/health"
        }
      ],
      "title": "Operacao Cloudflare por wrangler",
      "workflow_id": "cloudflare-wrangler-operations"
    },
    {
      "expected_artifacts": [
        "state decision",
        "health smoke",
        "openapi",
        "mcp readiness",
        "panel status"
      ],
      "platforms": [
        "intelligence",
        "mcps",
        "docs",
        "ui"
      ],
      "primary_profile": "ceo",
      "purpose": "Tirar Intelligence de unsupported/catalogOnly apenas com endpoint, smoke e contrato.",
      "risk_if_missing": "Intelligence permanece meio provider e confunde readiness global.",
      "steps": [
        {
          "human_output": "sem ambiguidade",
          "owner_platform": "intelligence",
          "required_signals": [
            "planned",
            "catalogOnly"
          ],
          "step_id": "planned-state",
          "title": "Declarar estado planejado",
          "validation": "registrar estado"
        },
        {
          "human_output": "runtime basico",
          "owner_platform": "intelligence",
          "required_signals": [
            "health",
            "profile",
            "readiness"
          ],
          "step_id": "endpoint",
          "title": "Publicar endpoint minimo",
          "validation": "chamar endpoint"
        },
        {
          "human_output": "surface auditavel",
          "owner_platform": "intelligence",
          "required_signals": [
            "openapi",
            "schema"
          ],
          "step_id": "contract",
          "title": "Publicar contrato",
          "validation": "validar contrato"
        },
        {
          "human_output": "control-plane ciente",
          "owner_platform": "mcps",
          "required_signals": [
            "provider",
            "readiness"
          ],
          "step_id": "mcp-register",
          "title": "Registrar no MCP",
          "validation": "comparar catalogo"
        },
        {
          "human_output": "status humano",
          "owner_platform": "ui",
          "required_signals": [
            "panelReady",
            "sameSource"
          ],
          "step_id": "ui-readiness",
          "title": "Expor status no painel",
          "validation": "validar tela"
        }
      ],
      "title": "Promocao controlada de Intelligence",
      "workflow_id": "intelligence-promotion"
    },
    {
      "expected_artifacts": [
        "version",
        "compatibility",
        "smoke report",
        "rollback plan",
        "changelog"
      ],
      "platforms": [
        "platform_base",
        "mcps",
        "docs",
        "ui"
      ],
      "primary_profile": "gestor_operacional",
      "purpose": "Promover mudanca sem quebrar contrato, UI, GPT ou auditoria.",
      "risk_if_missing": "Mudancas futuras quebram contratos sem trilha de reversao.",
      "steps": [
        {
          "human_output": "versao clara",
          "owner_platform": "platform_base",
          "required_signals": [
            "contractVersion",
            "schemaVersion"
          ],
          "step_id": "version",
          "title": "Gerar contractVersion/schemaVersion",
          "validation": "exportar versao"
        },
        {
          "human_output": "risco explicito",
          "owner_platform": "platform_base",
          "required_signals": [
            "compatibilityVersion",
            "breakingChanges"
          ],
          "step_id": "compat",
          "title": "Declarar compatibilidade",
          "validation": "validar compat"
        },
        {
          "human_output": "prova tecnica",
          "owner_platform": "mcps",
          "required_signals": [
            "smoke",
            "readiness"
          ],
          "step_id": "smoke",
          "title": "Executar smoke regressivo",
          "validation": "rodar smoke"
        },
        {
          "human_output": "reversao possivel",
          "owner_platform": "platform_base",
          "required_signals": [
            "rollback",
            "previousVersion"
          ],
          "step_id": "rollback",
          "title": "Registrar rollback",
          "validation": "validar rollback"
        },
        {
          "human_output": "memoria de mudanca",
          "owner_platform": "docs",
          "required_signals": [
            "changelog",
            "migrationNotes"
          ],
          "step_id": "docs",
          "title": "Publicar changelog",
          "validation": "validar docs"
        }
      ],
      "title": "Release com rollback e contrato",
      "workflow_id": "release-and-rollback"
    }
  ]
}