feat: fundar plataforma mais humana
This commit is contained in:
911
dados/cenarios-governanca.json
Normal file
911
dados/cenarios-governanca.json
Normal file
@@ -0,0 +1,911 @@
|
||||
{
|
||||
"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"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user