{ "evaluations": [ { "assertion_results": [ { "assertion_id": "docs-decision", "explanation": "Docs precisa de decisao formal.", "forbidden_hits": [ "ambig" ], "missing_terms": [], "passed": false, "platform_id": "docs", "remediation": "registrar decisao Docs" }, { "assertion_id": "mcp-readiness", "explanation": "MCP deve refletir a decisao.", "forbidden_hits": [], "missing_terms": [], "passed": false, "platform_id": "mcps", "remediation": "atualizar readiness MCP" }, { "assertion_id": "ui-explainable", "explanation": "UI/GPT devem explicar a mesma fonte.", "forbidden_hits": [], "missing_terms": [], "passed": true, "platform_id": "ui", "remediation": "validar sameSource" } ], "next_actions": [ "registrar decisao Docs", "atualizar readiness MCP" ], "scenario_id": "docs-blocker-reconciliation", "score": 33, "status": "bloqueado", "title": "Docs deixa de ser blocker ambiguo" }, { "assertion_results": [ { "assertion_id": "identity-actor", "explanation": "Ator e tenant precisam existir.", "forbidden_hits": [], "missing_terms": [ "organization", "tenant" ], "passed": false, "platform_id": "identity", "remediation": "criar usuario e organizacao" }, { "assertion_id": "business-entitlement", "explanation": "Uso precisa ser autorizado comercialmente.", "forbidden_hits": [], "missing_terms": [], "passed": true, "platform_id": "business", "remediation": "vincular produto" }, { "assertion_id": "credential-ref", "explanation": "Credencial deve virar ref segura.", "forbidden_hits": [], "missing_terms": [], "passed": false, "platform_id": "integracoes", "remediation": "gerar credentialRef e smoke" }, { "assertion_id": "redaction", "explanation": "Nao vazamento deve ser provado.", "forbidden_hits": [], "missing_terms": [], "passed": true, "platform_id": "compliance", "remediation": "executar redaction check" } ], "next_actions": [ "criar usuario e organizacao", "gerar credentialRef e smoke" ], "scenario_id": "byok-tenant-controlled", "score": 50, "status": "atencao", "title": "BYOK por tenant sem vazamento" }, { "assertion_results": [ { "assertion_id": "plan", "explanation": "Plano e quota precisam de fonte unica.", "forbidden_hits": [], "missing_terms": [ "quota" ], "passed": false, "platform_id": "business", "remediation": "publicar contrato Business" }, { "assertion_id": "billing", "explanation": "Finance precisa reconciliar cobranca.", "forbidden_hits": [], "missing_terms": [ "usage", "reconciliation" ], "passed": false, "platform_id": "finance", "remediation": "gerar extrato" }, { "assertion_id": "support", "explanation": "Suporte precisa explicar bloqueio.", "forbidden_hits": [ "erro bruto" ], "missing_terms": [], "passed": false, "platform_id": "customer_ops", "remediation": "criar mensagem humana" } ], "next_actions": [ "publicar contrato Business", "gerar extrato", "criar mensagem humana" ], "scenario_id": "business-sellable-control", "score": 0, "status": "bloqueado", "title": "Produto vendavel com gate Business" }, { "assertion_results": [ { "assertion_id": "screen", "explanation": "MCP deve criar instancia de tela.", "forbidden_hits": [], "missing_terms": [], "passed": false, "platform_id": "mcps", "remediation": "criar viewInstance" }, { "assertion_id": "hashes", "explanation": "Hashes devem existir.", "forbidden_hits": [], "missing_terms": [ "records" ], "passed": false, "platform_id": "mcps", "remediation": "gerar source hashes" }, { "assertion_id": "ui", "explanation": "UI deve renderizar mesmo contrato.", "forbidden_hits": [], "missing_terms": [], "passed": true, "platform_id": "ui", "remediation": "validar UI" }, { "assertion_id": "docs", "explanation": "Docs deve registrar contrato.", "forbidden_hits": [], "missing_terms": [], "passed": false, "platform_id": "docs", "remediation": "publicar contrato" } ], "next_actions": [ "criar viewInstance", "gerar source hashes", "publicar contrato" ], "scenario_id": "panel-gpt-same-source", "score": 25, "status": "bloqueado", "title": "Painel e GPT compartilham a mesma fonte" }, { "assertion_results": [ { "assertion_id": "roles", "explanation": "Papeis precisam estar mapeados.", "forbidden_hits": [], "missing_terms": [ "role" ], "passed": false, "platform_id": "identity", "remediation": "criar matriz RBAC" }, { "assertion_id": "deny", "explanation": "Negacao precisa ser testada.", "forbidden_hits": [], "missing_terms": [ "403", "forbidden" ], "passed": false, "platform_id": "identity", "remediation": "criar teste deny" }, { "assertion_id": "audit", "explanation": "Decisao precisa ser auditavel.", "forbidden_hits": [], "missing_terms": [], "passed": true, "platform_id": "compliance", "remediation": "registrar auditId" } ], "next_actions": [ "criar matriz RBAC", "criar teste deny" ], "scenario_id": "identity-rbac-negative-path", "score": 33, "status": "bloqueado", "title": "RBAC com caminho negado provado" }, { "assertion_results": [ { "assertion_id": "plugin", "explanation": "Plugin deve ser premissa, nao blocker.", "forbidden_hits": [ "blocker" ], "missing_terms": [], "passed": false, "platform_id": "integracoes", "remediation": "registrar tentativa" }, { "assertion_id": "wrangler", "explanation": "Trabalho real precisa usar wrangler.", "forbidden_hits": [], "missing_terms": [ "deploy", "secret" ], "passed": false, "platform_id": "integracoes", "remediation": "validar wrangler" }, { "assertion_id": "runtime", "explanation": "Runtime precisa ter rotas e bindings.", "forbidden_hits": [], "missing_terms": [ "binding" ], "passed": false, "platform_id": "integracoes", "remediation": "validar rota/binding" } ], "next_actions": [ "registrar tentativa", "validar wrangler", "validar rota/binding" ], "scenario_id": "cloudflare-wrangler-not-plugin", "score": 0, "status": "bloqueado", "title": "Cloudflare opera por wrangler" }, { "assertion_results": [ { "assertion_id": "ticket", "explanation": "Ticket precisa existir.", "forbidden_hits": [], "missing_terms": [ "ticket" ], "passed": false, "platform_id": "customer_ops", "remediation": "abrir incidente" }, { "assertion_id": "handoff", "explanation": "Responsavel precisa ser definido.", "forbidden_hits": [], "missing_terms": [ "handoff", "owner" ], "passed": false, "platform_id": "customer_ops", "remediation": "encaminhar" }, { "assertion_id": "resolution", "explanation": "Resolucao precisa ter evidencia.", "forbidden_hits": [], "missing_terms": [ "resolved" ], "passed": false, "platform_id": "customer_ops", "remediation": "fechar incidente" }, { "assertion_id": "audit", "explanation": "Ciclo precisa ser auditavel.", "forbidden_hits": [], "missing_terms": [], "passed": true, "platform_id": "compliance", "remediation": "registrar audit" } ], "next_actions": [ "abrir incidente", "encaminhar", "fechar incidente" ], "scenario_id": "customer-ops-support-cycle", "score": 25, "status": "bloqueado", "title": "Suporte fecha ciclo de incidente" }, { "assertion_results": [ { "assertion_id": "version", "explanation": "Versao precisa ser explicita.", "forbidden_hits": [], "missing_terms": [ "contractversion", "schemaversion" ], "passed": false, "platform_id": "platform_base", "remediation": "gerar contrato" }, { "assertion_id": "smoke", "explanation": "Smoke precisa rodar.", "forbidden_hits": [], "missing_terms": [], "passed": false, "platform_id": "mcps", "remediation": "executar smoke" }, { "assertion_id": "rollback", "explanation": "Rollback precisa existir.", "forbidden_hits": [], "missing_terms": [ "previous" ], "passed": false, "platform_id": "platform_base", "remediation": "registrar rollback" }, { "assertion_id": "docs", "explanation": "Mudanca precisa ser documentada.", "forbidden_hits": [], "missing_terms": [ "changelog", "migration" ], "passed": false, "platform_id": "docs", "remediation": "publicar changelog" } ], "next_actions": [ "gerar contrato", "executar smoke", "registrar rollback", "publicar changelog" ], "scenario_id": "release-version-rollback", "score": 0, "status": "bloqueado", "title": "Release tem versao, regressao e rollback" } ], "scenarios": [ { "assertions": [ { "assertion_id": "docs-decision", "expected_terms": [ "docs", "catalog", "response", "excecao" ], "explanation": "Docs precisa de decisao formal.", "forbidden_terms": [ "ambig" ], "platform_id": "docs", "remediation": "registrar decisao Docs" }, { "assertion_id": "mcp-readiness", "expected_terms": [ "readiness", "docs", "blocker" ], "explanation": "MCP deve refletir a decisao.", "forbidden_terms": [ "global indevido" ], "platform_id": "mcps", "remediation": "atualizar readiness MCP" }, { "assertion_id": "ui-explainable", "expected_terms": [ "panel", "same", "source" ], "explanation": "UI/GPT devem explicar a mesma fonte.", "forbidden_terms": [ "diverg" ], "platform_id": "ui", "remediation": "validar sameSource" } ], "failure_impact": "Docs segue bloqueando maturidade global sem clareza institucional.", "owner_domain": "docs", "purpose": "A rodada deve transformar Docs catalogOnly em leitura minima responseReady ou excecao deliberada.", "scenario_id": "docs-blocker-reconciliation", "success_artifacts": [ "decisao Docs", "readiness MCP", "contrato UI/GPT" ], "title": "Docs deixa de ser blocker ambiguo" }, { "assertions": [ { "assertion_id": "identity-actor", "expected_terms": [ "actor", "organization", "tenant" ], "explanation": "Ator e tenant precisam existir.", "forbidden_terms": [ "unknown" ], "platform_id": "identity", "remediation": "criar usuario e organizacao" }, { "assertion_id": "business-entitlement", "expected_terms": [ "entitlement", "product", "plan" ], "explanation": "Uso precisa ser autorizado comercialmente.", "forbidden_terms": [ "sem entitlement" ], "platform_id": "business", "remediation": "vincular produto" }, { "assertion_id": "credential-ref", "expected_terms": [ "byok", "credentialref", "smoke" ], "explanation": "Credencial deve virar ref segura.", "forbidden_terms": [ "token bruto", "secret=" ], "platform_id": "integracoes", "remediation": "gerar credentialRef e smoke" }, { "assertion_id": "redaction", "expected_terms": [ "redaction", "audit", "trace" ], "explanation": "Nao vazamento deve ser provado.", "forbidden_terms": [ "password", "api_key" ], "platform_id": "compliance", "remediation": "executar redaction check" } ], "failure_impact": "Autosservico parece pronto, mas falha no primeiro cliente real.", "owner_domain": "integrations", "purpose": "Validar BYOK completo com ator, organizacao, entitlement, credentialRef, smoke e audit.", "scenario_id": "byok-tenant-controlled", "success_artifacts": [ "credentialRef", "smoke readonly", "auditId", "usage" ], "title": "BYOK por tenant sem vazamento" }, { "assertions": [ { "assertion_id": "plan", "expected_terms": [ "plan", "entitlement", "quota" ], "explanation": "Plano e quota precisam de fonte unica.", "forbidden_terms": [ "divergente" ], "platform_id": "business", "remediation": "publicar contrato Business" }, { "assertion_id": "billing", "expected_terms": [ "invoice", "usage", "reconciliation" ], "explanation": "Finance precisa reconciliar cobranca.", "forbidden_terms": [ "sem fatura" ], "platform_id": "finance", "remediation": "gerar extrato" }, { "assertion_id": "support", "expected_terms": [ "support", "diagnostic", "next" ], "explanation": "Suporte precisa explicar bloqueio.", "forbidden_terms": [ "erro bruto" ], "platform_id": "customer_ops", "remediation": "criar mensagem humana" } ], "failure_impact": "Venda e suporte ficam baseados em regras dispersas.", "owner_domain": "business", "purpose": "Garantir que produto, plano, quota e bloqueio venham de Business.", "scenario_id": "business-sellable-control", "success_artifacts": [ "entitlement", "usage", "invoice", "diagnostic" ], "title": "Produto vendavel com gate Business" }, { "assertions": [ { "assertion_id": "screen", "expected_terms": [ "screen", "view", "panel" ], "explanation": "MCP deve criar instancia de tela.", "forbidden_terms": [ "fonte paralela" ], "platform_id": "mcps", "remediation": "criar viewInstance" }, { "assertion_id": "hashes", "expected_terms": [ "source", "hash", "records" ], "explanation": "Hashes devem existir.", "forbidden_terms": [ "mismatch" ], "platform_id": "mcps", "remediation": "gerar source hashes" }, { "assertion_id": "ui", "expected_terms": [ "panelready", "samesource" ], "explanation": "UI deve renderizar mesmo contrato.", "forbidden_terms": [ "false" ], "platform_id": "ui", "remediation": "validar UI" }, { "assertion_id": "docs", "expected_terms": [ "contract", "schema", "version" ], "explanation": "Docs deve registrar contrato.", "forbidden_terms": [ "sem versao" ], "platform_id": "docs", "remediation": "publicar contrato" } ], "failure_impact": "Painel e GPT podem divergir e quebrar confianca humana.", "owner_domain": "mcp", "purpose": "Garantir que screenData, explicacao GPT e evidencia tenham hashes compatíveis.", "scenario_id": "panel-gpt-same-source", "success_artifacts": [ "viewInstance", "sourcePayloadHash", "sourceRecordsHash", "contractVersion" ], "title": "Painel e GPT compartilham a mesma fonte" }, { "assertions": [ { "assertion_id": "roles", "expected_terms": [ "role", "scope", "permission" ], "explanation": "Papeis precisam estar mapeados.", "forbidden_terms": [ "allow all" ], "platform_id": "identity", "remediation": "criar matriz RBAC" }, { "assertion_id": "deny", "expected_terms": [ "deny", "403", "forbidden" ], "explanation": "Negacao precisa ser testada.", "forbidden_terms": [ "sem negacao" ], "platform_id": "identity", "remediation": "criar teste deny" }, { "assertion_id": "audit", "expected_terms": [ "audit", "trace" ], "explanation": "Decisao precisa ser auditavel.", "forbidden_terms": [ "sem audit" ], "platform_id": "compliance", "remediation": "registrar auditId" } ], "failure_impact": "Permissao fica insegura e suporte nao consegue explicar negacao.", "owner_domain": "identity", "purpose": "Provar tanto allow quanto deny para papel, escopo e tenant.", "scenario_id": "identity-rbac-negative-path", "success_artifacts": [ "matriz RBAC", "deny evidence", "auditId" ], "title": "RBAC com caminho negado provado" }, { "assertions": [ { "assertion_id": "plugin", "expected_terms": [ "plugin", "cloudflare", "esperada" ], "explanation": "Plugin deve ser premissa, nao blocker.", "forbidden_terms": [ "blocker" ], "platform_id": "integracoes", "remediation": "registrar tentativa" }, { "assertion_id": "wrangler", "expected_terms": [ "wrangler", "deploy", "secret" ], "explanation": "Trabalho real precisa usar wrangler.", "forbidden_terms": [ "sem wrangler" ], "platform_id": "integracoes", "remediation": "validar wrangler" }, { "assertion_id": "runtime", "expected_terms": [ "route", "binding", "health" ], "explanation": "Runtime precisa ter rotas e bindings.", "forbidden_terms": [ "missing" ], "platform_id": "integracoes", "remediation": "validar rota/binding" } ], "failure_impact": "Diagnostico Cloudflare fica preso em plugin experimental.", "owner_domain": "cloud", "purpose": "Tratar plugin como teste inicial e usar wrangler para trabalho real.", "scenario_id": "cloudflare-wrangler-not-plugin", "success_artifacts": [ "plugin attempt", "wrangler status", "route health" ], "title": "Cloudflare opera por wrangler" }, { "assertions": [ { "assertion_id": "ticket", "expected_terms": [ "ticket", "incident", "open" ], "explanation": "Ticket precisa existir.", "forbidden_terms": [ "sem ticket" ], "platform_id": "customer_ops", "remediation": "abrir incidente" }, { "assertion_id": "handoff", "expected_terms": [ "handoff", "owner", "sla" ], "explanation": "Responsavel precisa ser definido.", "forbidden_terms": [ "sem owner" ], "platform_id": "customer_ops", "remediation": "encaminhar" }, { "assertion_id": "resolution", "expected_terms": [ "resolved", "evidence" ], "explanation": "Resolucao precisa ter evidencia.", "forbidden_terms": [ "sem fechamento" ], "platform_id": "customer_ops", "remediation": "fechar incidente" }, { "assertion_id": "audit", "expected_terms": [ "audit", "trace" ], "explanation": "Ciclo precisa ser auditavel.", "forbidden_terms": [ "sem audit" ], "platform_id": "compliance", "remediation": "registrar audit" } ], "failure_impact": "Suporte perde contexto e repete falhas.", "owner_domain": "support", "purpose": "Atendimento precisa abrir, classificar, encaminhar, resolver e auditar incidente.", "scenario_id": "customer-ops-support-cycle", "success_artifacts": [ "ticket", "owner", "resolution", "audit" ], "title": "Suporte fecha ciclo de incidente" }, { "assertions": [ { "assertion_id": "version", "expected_terms": [ "contractversion", "schemaversion" ], "explanation": "Versao precisa ser explicita.", "forbidden_terms": [ "sem versao" ], "platform_id": "platform_base", "remediation": "gerar contrato" }, { "assertion_id": "smoke", "expected_terms": [ "smoke", "readiness" ], "explanation": "Smoke precisa rodar.", "forbidden_terms": [ "sem smoke" ], "platform_id": "mcps", "remediation": "executar smoke" }, { "assertion_id": "rollback", "expected_terms": [ "rollback", "previous" ], "explanation": "Rollback precisa existir.", "forbidden_terms": [ "sem rollback" ], "platform_id": "platform_base", "remediation": "registrar rollback" }, { "assertion_id": "docs", "expected_terms": [ "changelog", "migration" ], "explanation": "Mudanca precisa ser documentada.", "forbidden_terms": [ "sem changelog" ], "platform_id": "docs", "remediation": "publicar changelog" } ], "failure_impact": "Mudancas futuras quebram contrato sem reversao clara.", "owner_domain": "governance", "purpose": "Cada mudanca precisa de contrato, smoke, rollback e changelog.", "scenario_id": "release-version-rollback", "success_artifacts": [ "contractVersion", "smoke", "rollback", "changelog" ], "title": "Release tem versao, regressao e rollback" } ], "summary": [ "Cenarios avaliados: 8", "Cenarios prontos/uteis: 0", "Cenarios bloqueados: 7", "Score medio de cenario: 21" ] }