{
  "cycle_id": "mesh-cycle-d24375d5dc3e",
  "gates": [
    {
      "evidence": [
        "15"
      ],
      "gate_id": "inventory.targets-declared",
      "next_action": "atualizar manifesto da OS permanente",
      "reason": "Repositorios declarados: 15.",
      "score": 100,
      "severity": "info",
      "status": "pass",
      "title": "Todos os repositorios declarados foram carregados"
    },
    {
      "evidence": [
        "60"
      ],
      "gate_id": "inventory.observations-created",
      "next_action": "rodar inventario nos ambientes faltantes",
      "reason": "Observacoes: 60.",
      "score": 100,
      "severity": "info",
      "status": "pass",
      "title": "Observacoes por ambiente foram criadas"
    },
    {
      "evidence": [
        "tudo-para-ia-business-platform",
        "tudo-para-ia-compliance-platform",
        "tudo-para-ia-customer-ops-platform",
        "tudo-para-ia-docs-plataform",
        "tudo-para-ia-finance-platform",
        "tudo-para-ia-gettys-platform",
        "tudo-para-ia-identity-platform",
        "tudo-para-ia-integracoes-platform"
      ],
      "gate_id": "inventory.hashes-present",
      "next_action": "corrigir acesso a repositorios e repetir git rev-parse HEAD",
      "reason": "Hashes HEAD foram coletados em ambientes acessiveis.",
      "score": 100,
      "severity": "info",
      "status": "pass",
      "title": "Ao menos um hash HEAD foi observado"
    },
    {
      "evidence": [
        "fetch_enabled=True"
      ],
      "gate_id": "inventory.fetch-attempted",
      "next_action": "executar repo-mesh --fetch em rodada com credencial Git disponivel",
      "reason": "Fetch habilitado no ciclo.",
      "score": 100,
      "severity": "info",
      "status": "pass",
      "title": "Fetch nao destrutivo foi tentado quando solicitado"
    },
    {
      "evidence": [],
      "gate_id": "safety.no-destructive-auto",
      "next_action": "corrigir gates do runtime antes de ativar scheduler",
      "reason": "Runtime nao permitiu comando destrutivo.",
      "score": 100,
      "severity": "info",
      "status": "pass",
      "title": "Nenhum comando destrutivo ficou permitido automaticamente"
    },
    {
      "evidence": [
        "10"
      ],
      "gate_id": "safety.dirty-blocked",
      "next_action": "commit/stash consciente ou decisao de precedencia",
      "reason": "Worktrees sujos detectados: 10.",
      "score": 100,
      "severity": "info",
      "status": "pass",
      "title": "Working trees sujos viraram bloqueio"
    },
    {
      "evidence": [
        "0",
        "0"
      ],
      "gate_id": "safety.credentials-classified",
      "next_action": "configurar credencial Git e repetir fetch",
      "reason": "Falhas de credencial: 0; recibos credential_blocked: 0.",
      "score": 100,
      "severity": "info",
      "status": "pass",
      "title": "Falhas de credencial foram classificadas"
    },
    {
      "evidence": [
        "15",
        "15"
      ],
      "gate_id": "safety.receipts-created",
      "next_action": "regerar plano de reconciliacao",
      "reason": "Recibos: 15; repositorios: 15.",
      "score": 100,
      "severity": "info",
      "status": "pass",
      "title": "Recibos de reconciliacao foram criados"
    },
    {
      "evidence": [
        "15"
      ],
      "gate_id": "safety.blockers-visible",
      "next_action": "executar ordens de saida para remover bloqueios reais",
      "reason": "Recibos com blocker: 15.",
      "score": 10,
      "severity": "warning",
      "status": "warn",
      "title": "Bloqueios estao visiveis no plano"
    },
    {
      "evidence": [
        "30"
      ],
      "gate_id": "naming.policy-evaluated",
      "next_action": "executar reconciliacao com raizes acessiveis",
      "reason": "Decisoes nominais: 30.",
      "score": 100,
      "severity": "info",
      "status": "pass",
      "title": "Politica de nomenclatura avaliou os repositorios"
    },
    {
      "evidence": [
        "tudo-para-ia-integracoes-platform"
      ],
      "gate_id": "naming.no-conflicts",
      "next_action": "comparar variantes platform/plataform/alias antes de rename ou clone",
      "reason": "Conflitos nominais: 1.",
      "score": 0,
      "severity": "blocker",
      "status": "fail",
      "title": "Conflitos de nome foram bloqueados"
    },
    {
      "evidence": [
        "tudo-para-ia-integracoes-platform:conflict",
        "tudo-para-ia-integracoes-platform:canonical_rename_required",
        "tudo-para-ia-mais-humana-platform:canonical_rename_required",
        "tudo-para-ia-mais-humana-platform:canonical_rename_required"
      ],
      "gate_id": "naming.pending-visible",
      "next_action": "executar ordens de renome/alias geradas pela reconciliacao",
      "reason": "Pendencias nominais: 4.",
      "score": 65,
      "severity": "warning",
      "status": "warn",
      "title": "Pendencias nominais estao visiveis"
    },
    {
      "evidence": [
        "mesh-cycle-d24375d5dc3e"
      ],
      "gate_id": "automation.runtime-cycle",
      "next_action": "gerar runtime cycle com lock e comandos",
      "reason": "Ciclo: mesh-cycle-d24375d5dc3e.",
      "score": 100,
      "severity": "info",
      "status": "pass",
      "title": "Ciclo runtime foi gerado"
    },
    {
      "evidence": [
        "G:\\_codex-git\\tudo-para-ia-mais-humana\\dados\\repository-mesh.lock.json",
        "acquired"
      ],
      "gate_id": "automation.lock-held",
      "next_action": "corrigir lock do runtime",
      "reason": "Lock: acquired.",
      "score": 100,
      "severity": "info",
      "status": "pass",
      "title": "Runtime registrou estado de lock"
    },
    {
      "evidence": [
        "cron",
        "windows_task"
      ],
      "gate_id": "automation.schedulers",
      "next_action": "publicar instalacao em cada ambiente",
      "reason": "Schedulers: cron, windows_task.",
      "score": 100,
      "severity": "info",
      "status": "pass",
      "title": "Schedulers Windows e Linux foram especificados"
    },
    {
      "evidence": [
        "4",
        "127"
      ],
      "gate_id": "automation.allowed-commands-limited",
      "next_action": "revisar gates se comandos automaticos crescerem sem recibo",
      "reason": "Allowed: 4; total: 127.",
      "score": 100,
      "severity": "info",
      "status": "pass",
      "title": "Comandos automaticos permitidos sao minoria controlada"
    },
    {
      "evidence": [
        "7"
      ],
      "gate_id": "semantic.report",
      "next_action": "executar write_repository_mesh_semantic_state",
      "reason": "Reports SQL: 7.",
      "score": 100,
      "severity": "info",
      "status": "pass",
      "title": "SQL registrou report da malha"
    },
    {
      "evidence": [
        "55"
      ],
      "gate_id": "semantic.receipts",
      "next_action": "persistir plano de reconciliacao no SQLite",
      "reason": "Receipts SQL: 55.",
      "score": 100,
      "severity": "info",
      "status": "pass",
      "title": "SQL registrou recibos de reconciliacao"
    },
    {
      "evidence": [
        "2"
      ],
      "gate_id": "semantic.schedulers",
      "next_action": "persistir specs de scheduler Windows/Cron",
      "reason": "Schedulers SQL: 2.",
      "score": 100,
      "severity": "info",
      "status": "pass",
      "title": "SQL registrou schedulers"
    }
  ],
  "generated_at": "2026-05-02T09:22:17+00:00",
  "plan_id": "mesh-plan-ee966ea13250",
  "readiness_id": "mesh-readiness-4f900e76f675",
  "report_id": "repository-mesh-743971a78ae1",
  "score": 88,
  "status": "fail",
  "summary": [
    "score: 88",
    "status: fail",
    "gates: 19",
    "blockers: 1",
    "warnings: 2",
    "passed: 16"
  ]
}