{
    "tipo": "arvore-sa",
    "nome": "operador-manual-conector",
    "criadoEm": "2026-09-03T13:17:09Z",
    "atualizadoEm": "2026-09-03T13:17:12Z",
    "filhos": [
        {
            "nome": "INÍCIO — operador vai criar, revisar ou operar conector SISC 📋 spec_integracoes_externas_e_conectores § C6: E proibido criar fila proprietaria ou chamada direta para substituir o fluxo nativo escuta.c; § C8: Conectores leem pelo modo ler-mensagem e publicam so por pp --api",
            "filhos": [
                {
                    "nome": "Objetivo: integrar serviço externo sem quebrar o barramento nativo do SISC 📋 spec_integracoes_externas_e_conectores § C1: catalogo deve mapear idmensagem para entidade SISC valida agente__id, conector__id ou sistema__id",
                    "filhos": []
                },
                {
                    "nome": "Regra absoluta: conector não escreve diretamente em espaco/entrada, caixas, processando, concluidas, erro, quarentena, indice ou estado 📋 spec_comunicacao_espaco_sisc_nativo § C8: Nenhum modulo deve varrer caixas de outro ator; § C9: somente pp --api pode publicar em espaco/entrada",
                    "filhos": []
                },
                {
                    "nome": "Toda saída do conector para o SISC deve chamar api.php via POST HTTP ou, no teste do operador, usar pp --api apenas para publicar mensagem de entrada 📋 spec_api_declarativa_catalogo_mensagens § C5: pp --api/api.php sao os unicos mecanismos de publicacao em espaco/entrada",
                    "filhos": []
                },
                {
                    "nome": "Frontend/browser nunca chama conector nem escolhe idmensagem/destino: componentes AJAX devem chamar somente conexao-externo/front-api.php com acao declarativa e dados validados; o objeto visual atualizado deve chamar-se exatamente como o conector (ex.: conector-email atualiza id/name conector-email)",
                    "filhos": []
                },
                {
                    "nome": "Trabalhar dentro do sistema alvo: cd /var/www/html/sisc/<sistema>",
                    "filhos": []
                },
                {
                    "nome": "Próximo: varredura automática do manual",
                    "filhos": []
                }
            ]
        },
        {
            "nome": "1 → VARREDURA AUTOMÁTICA — detectar mudanças nos comandos relacionados",
            "filhos": [
                {
                    "nome": "Varredura executada nesta atualização: fontes .c, executáveis/scripts, ajuda JSON e arquivos de runtime/contrato relacionados a conectores",
                    "filhos": []
                },
                {
                    "nome": "Sistema usado para arquivos operacionais da varredura: siscore",
                    "filhos": []
                },
                {
                    "nome": "Regra: se uma assinatura abaixo mudar entre execuções, reexecute pp --atualizar-manual-conector e revise os passos do fluxograma afetados",
                    "filhos": []
                },
                {
                    "nome": "criar-sistema — cria sistemas ja com api.php, front-api.php, cliente publico e catalogos base; flags-chave: --criar-sistema=<nome>; fonte: ok size=33717 mtime=2026-08-30T13:08:51Z fnv=4cf66d54875e7940; executável/script: ok size=30736 mtime=2026-08-30T13:09:22Z fnv=f3915b77c4981bd4; ajuda: ok size=4624 mtime=2026-08-30T13:09:02Z fnv=0bd755e92d7971f4",
                    "filhos": []
                },
                {
                    "nome": "empacotar-conector — cria pacote autocontido do conector em core/biblioteca-conectores; flags-chave: --empacotar-conector=<nome>; fonte: ok size=36957 mtime=2026-08-22T10:06:04Z fnv=3d490836d9650a59; executável/script: ok size=39848 mtime=2026-08-24T10:16:26Z fnv=5d24642055df03bb; ajuda: ok size=2309 mtime=2026-08-22T09:32:32Z fnv=78b34bb608fc9898; atenção: ajuda possivelmente desatualizada, rode pp --atualizar-ajuda-comandos=empacotar-conector",
                    "filhos": []
                },
                {
                    "nome": "importar-conectores — importa pacotes autocontidos de core/biblioteca-conectores; flags-chave: --importar-conectores; fonte: ok size=42221 mtime=2026-09-02T09:53:48Z fnv=3351d44ced5bb1fb; executável/script: ok size=44384 mtime=2026-09-02T09:53:54Z fnv=3e5223f12d8baa06; ajuda: ok size=2874 mtime=2026-09-02T09:53:54Z fnv=0037256e7edb577d",
                    "filhos": []
                },
                {
                    "nome": "atualizar-catalogo-mensagens — monta web-api/catalogo-mensagens.json a partir de catalogos modulares web-api/catalogo-*.json; flags-chave: --dry-run --verificar; fonte: ausente; executável/script: ok size=5883 mtime=2026-08-22T11:10:44Z fnv=305d88cc67b9cd68; ajuda: ok size=2175 mtime=2026-08-22T11:15:15Z fnv=308093147aeb3479",
                    "filhos": []
                },
                {
                    "nome": "api — publica mensagem declarativa no espaco nativo a partir do agregado web-api/catalogo-mensagens.json; front-api.php usa a mesma rota segura via cliente SISC; flags-chave: --api=<idmensagem> --dados=<json|arquivo> --dry-run; fonte: ok size=45533 mtime=2026-08-22T09:23:12Z fnv=332d2576b66b8fa4; executável/script: ok size=48024 mtime=2026-08-24T10:15:36Z fnv=e1077dfbd7158535; ajuda: ok size=7456 mtime=2026-08-12T09:32:48Z fnv=1c2ba3ee332600dd; atenção: ajuda possivelmente desatualizada, rode pp --atualizar-ajuda-comandos=api",
                    "filhos": []
                },
                {
                    "nome": "ligar-escuta — liga a escuta continua que entrega mensagens a agentes e conectores; flags-chave: --base= --intervalo= --paralelo=; fonte: ausente; executável/script: ok size=3460 mtime=2026-09-02T20:19:37Z fnv=7a63b19dda545489; ajuda: ausente",
                    "filhos": []
                },
                {
                    "nome": "status-escuta — confere pid/log/status da escuta do sistema atual; flags-chave: --json --base=; fonte: ausente; executável/script: ok size=2400 mtime=2026-09-02T20:19:45Z fnv=4ea0d92b2ad2d693; ajuda: ausente",
                    "filhos": []
                },
                {
                    "nome": "pulsar-escuta — executa um ciclo unico da escuta para teste controlado; flags-chave: --base= --lote= --timeout-ator=; fonte: ausente; executável/script: ok size=1451 mtime=2026-08-28T14:57:14Z fnv=ca93dd3858ceb222; ajuda: ok size=3331 mtime=2026-08-28T14:57:28Z fnv=d47b701d028269d3",
                    "filhos": []
                },
                {
                    "nome": "desligar-escuta — desliga a escuta continua; flags-chave: --base=; fonte: ausente; executável/script: ok size=1992 mtime=2026-08-28T14:29:37Z fnv=eb03d308dcfec2c0; ajuda: ausente",
                    "filhos": []
                },
                {
                    "nome": "setar-escuta — comando legado que aponta para ligar/status/pulsar/desligar; flags-chave: --ajuda; fonte: ok size=1454 mtime=2026-08-06T17:40:29Z fnv=b28050f4cdd2c014; executável/script: ok size=16576 mtime=2026-08-16T17:46:28Z fnv=509d3223b8a0b542; ajuda: ok size=2330 mtime=2026-08-12T09:32:48Z fnv=215751b82407d847",
                    "filhos": []
                },
                {
                    "nome": "agente-at — apoio para manutencao/triagem de mensagens quando a escuta aponta falha; flags-chave: --ler-mensagem; fonte: ausente; executável/script: ausente; ajuda: ok size=3168 mtime=2026-08-22T11:40:24Z fnv=3341ef0c7be23cbc",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do sistema atual: siscore/escuta/runtime-conector.c — ok size=129 mtime=2026-07-11T16:33:22Z fnv=3edc968db8ea9666",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do sistema atual: siscore/escuta/runtime_comum.c — ok size=30981 mtime=2026-09-02T20:32:11Z fnv=e5b10060d7018aaa",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do sistema atual: siscore/escuta/escuta.c — ok size=102344 mtime=2026-09-02T20:38:04Z fnv=b83d271fd603feca",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do sistema atual: siscore/formatos-escuta/protocolo-mensagem-siscore.v1.json — ok size=11276 mtime=2026-08-28T15:18:15Z fnv=6b193efb02e0cbe5",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do sistema atual: siscore/conexao-externo/front-api.php — ok size=14622 mtime=2026-08-30T10:58:26Z fnv=a385af2ca7e074ae",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do sistema atual: siscore/conexao-externo/api.php — ok size=33453 mtime=2026-09-03T12:40:42Z fnv=c78991b22aeddc76",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do sistema atual: siscore/public/sisc-api-cliente.php — ok size=10477 mtime=2026-08-22T14:27:59Z fnv=00a528ceb8682786",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do sistema atual: siscore/web-api/catalogo-mensagens.json — ok size=4662 mtime=2026-09-03T12:59:52Z fnv=921d0c840cdd99fc",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do sistema atual: siscore/web-api/catalogo-conector-email.json — ok size=2802 mtime=2026-08-30T10:46:04Z fnv=bad2596a8e5cf02b",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do sistema atual: siscore/conectores/conector-email/conector-email.json — ok size=7784 mtime=2026-08-24T14:05:30Z fnv=a5a43514818533c9",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do sistema atual: siscore/conectores/conector-email/formatos/formato-conector-email.json — ok size=2885 mtime=2026-08-16T14:07:08Z fnv=6ca4ff306c4b9591",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do sistema atual: siscore/conectores/conector-email/handlers/conector-email.php — ok size=17139 mtime=2026-08-22T09:20:53Z fnv=20a605a4ef8d1db1",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do sistema atual: siscore/core/biblioteca-conectores/conector-email.tar.gz — ausente",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do core: core/biblioteca-specs/spec_integracoes_externas_e_conectores.json — ok size=15692 mtime=2026-08-30T10:53:46Z fnv=b1186ffcd6d6ca61",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do core: core/biblioteca-specs/spec_contratos_de_mensagem_espaco.json — ok size=15245 mtime=2026-08-22T13:32:50Z fnv=43bf3e57d140fc54",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do core: core/biblioteca-specs/spec_orquestracao_processos_assincronos.json — ok size=15231 mtime=2026-08-22T13:32:50Z fnv=9de036775fee6795",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do core: core/biblioteca-specs/spec_comunicacao_espaco_sisc_nativo.json — ok size=15854 mtime=2026-08-22T13:32:50Z fnv=1a6f9d1eedb9f89f",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do core: core/biblioteca-specs/spec_api_declarativa_catalogo_mensagens.json — ok size=16225 mtime=2026-08-30T10:56:14Z fnv=29b978ad1ca6600a",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do core: core/biblioteca-specs/spec_idempotencia_correlacao_e_ordem.json — ok size=15812 mtime=2026-08-22T13:32:50Z fnv=93fedc35e3b55ea1",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do core: core/biblioteca-specs/spec_resiliencia_timeout_retry_backpressure.json — ok size=15146 mtime=2026-08-22T13:32:50Z fnv=1bafad35cf89f2e6",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do core: core/biblioteca-specs/spec_segredos_configuracao_e_ambientes.json — ok size=15169 mtime=2026-08-22T13:32:50Z fnv=64ae19a93108f713",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do core: core/biblioteca-specs/spec_seguranca_zero_trust_web_api.json — ok size=15319 mtime=2026-08-22T13:32:50Z fnv=62011f2f3a773a3d",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do core: core/biblioteca-specs/spec_operacao_runbooks_e_incidentes.json — ok size=15089 mtime=2026-08-22T13:32:50Z fnv=6aaf50701f5cde4a",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do core: core/biblioteca-specs/spec_documentacao_adrs_e_catalogo_servicos.json — ok size=15157 mtime=2026-08-22T13:32:50Z fnv=fcc400260e158e57",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do core: core/biblioteca-specs/spec_testes_microservicos_web_api_espaco.json — ok size=16159 mtime=2026-08-22T13:32:50Z fnv=98a162393253c7bb",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do core: core/biblioteca-front/conectar_email/testeweb/index.php — ausente",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do core: ajuda-conectores/manual-conectores.html — ok size=129586 mtime=2026-09-03T13:16:25Z fnv=101ddf15eecf6d07",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do core: gitprog/manual-conector.html — ok size=115564 mtime=2026-09-03T13:16:25Z fnv=04b6b07a6a38e72f",
                    "filhos": []
                },
                {
                    "nome": "Arquivo relacionado do core: gitprog/conectores/conector-modelo/manual-conector-modelo.html — ok size=8946 mtime=2026-09-03T13:16:25Z fnv=8428f1ebce24d4ae",
                    "filhos": []
                },
                {
                    "nome": "DECISÃO — houve mudança relevante em comando/contrato de conector desde a última revisão humana?",
                    "filhos": []
                },
                {
                    "nome": "Se SIM: ler pp --<comando> --ajuda e revisar o ramo do fluxograma correspondente antes de operar",
                    "filhos": []
                },
                {
                    "nome": "Se NÃO: seguir o manual normalmente; as assinaturas ficam registradas como auditoria do manual gerado",
                    "filhos": []
                },
                {
                    "nome": "Próximo: decidir criar, importar ou revisar conector existente",
                    "filhos": []
                }
            ]
        },
        {
            "nome": "2 → DECIDIR CRIAR, IMPORTAR OU REVISAR CONECTOR 📋 spec_integracoes_externas_e_conectores § C8: Conectores devem ler mensagens pelo modo ler-mensagem e publicar respostas/eventos somente por pp --api",
            "filhos": [
                {
                    "nome": "Se for novo: usar o canal unico gitprog. O programador clona git@github.com:jrcostarrear/gitprog.git em qualquer diretorio da propria maquina; o conteudo baixado contem tudo que e necessario para produzir, validar e enviar conector ao SISC. A partir do clone, copiar o conector-modelo para conector-<nome>, preencher manifesto, formato, manual, catalogo, handler, mensagem de teste e testeSandbox obrigatório, validar com ./validar-conector e empacotar. O pacote produzido entra pelo funil gitconectores (validar-recebidos, testar-sandbox, instalar-aprovados) e so e instalado apos os dois selos validos para o SHA256 exato.",
                    "filhos": []
                },
                {
                    "nome": "Se existir como pacote na biblioteca: pp --importar-conectores. Para reaproveitar de outro sistema, primeiro empacote na origem com pp --empacotar-conector=<nome> e depois importe pelo pacote.",
                    "filhos": []
                },
                {
                    "nome": "Se já existir localmente: revalidar com ./validar-conector no kit gitprog para receber diagnóstico sem sobrescrever",
                    "filhos": []
                },
                {
                    "nome": "Contrato do runtime-conector novo: o executavel ./escuta/runtime-conector so aceita handler de conector como caminho relativo seguro dentro de conectores/<conector>/handlers/, exige arquivo executavel direto e invoca via sandbox-handler quando SISC_SANDBOX_DESATIVADO nao esta definido. O handler recebe como unico argumento uma copia somente-leitura do JSON da mensagem.",
                    "filhos": []
                },
                {
                    "nome": "NÃO: corrigir criação/importação antes de escrever handler ou ativar escuta",
                    "filhos": []
                },
                {
                    "nome": "SIM: seguir para revisão do manifesto",
                    "filhos": []
                },
                {
                    "nome": "DECISÃO — manifesto e formato base existem localmente? 📋 spec_integracoes_externas_e_conectores § C8: Conectores leem pelo modo ler-mensagem; manifesto deve declarar handlerLerMensagem",
                    "filhos": []
                },
                {
                    "nome": "Próximo: preparar manifesto",
                    "filhos": []
                }
            ]
        },
        {
            "nome": "3 → PREPARAR MANIFESTO DO CONECTOR 📋 spec_integracoes_externas_e_conectores § C8: Conectores leem mensagens pelo modo ler-mensagem; § C10: Credenciais de terceiros em segredos protegidos; § C12: Mapeamento externo-interno documentado e testado",
            "filhos": [
                {
                    "nome": "Abrir conectores/<conector>/<conector>.json e conferir nome, titulo, descricao, versao, tipo=conector e ativo=false durante preparação 📋 spec_integracoes_externas_e_conectores § C8: manifesto deve declarar handler real, metodoLeitura e metodoEnvio",
                    "filhos": []
                },
                {
                    "nome": "Conferir controlador.executavel = ./escuta/runtime-conector",
                    "filhos": []
                },
                {
                    "nome": "Conferir metodoLeitura=ler-mensagem e metodoEnvio=POST api.php 📋 spec_integracoes_externas_e_conectores § C8: Conectores leem mensagens pelo modo ler-mensagem e publicam respostas apenas por pp --api",
                    "filhos": []
                },
                {
                    "nome": "Declarar handlerLerMensagem apontando para arquivo real executavel em conectores/<conector>/handlers/<conector>.php ou equivalente. Caminho deve ser relativo seguro: sem / inicial, .., componente ., //, barra invertida ou controle; scripts precisam de shebang e binarios precisam ser executaveis diretamente.",
                    "filhos": []
                },
                {
                    "nome": "Documentar servicoExterno, credenciais por referência em secretos/ e operações aceitas 📋 spec_segredos_configuracao_e_ambientes § C8: Segredos nunca devem ser versionados em repositorios nem expostos em payload; § C10: credenciais em arquivo protegido ou secret manager",
                    "filhos": []
                },
                {
                    "nome": "NÃO: completar manifesto e manter ativo=false",
                    "filhos": []
                },
                {
                    "nome": "SIM: seguir para contrato/formato",
                    "filhos": []
                },
                {
                    "nome": "Declarar testeSandbox.permitido=true, testeSandbox.semEfeitoReal=true e descricao explicando por que a mensagem de teste e segura. Sem isso o validador local reprova, testar-sandbox nao emite selo-sandbox e instalar-aprovados recusa o siscore real.",
                    "filhos": []
                },
                {
                    "nome": "DECISÃO — o manifesto contém handler, regras de envio, serviço externo e operações mínimas? 📋 spec_integracoes_externas_e_conectores § C12: Mapeamento entre contrato externo e payload interno deve ser documentado e testado",
                    "filhos": []
                }
            ]
        },
        {
            "nome": "4 → DEFINIR CONTRATO EM FORMATOS-CONECTORES 📋 spec_contratos_de_mensagem_espaco § C8: Todo payload deve ter nome de contrato, versao semantica, descricao e exemplos; § C4: envelope com _sistema, _protocolo e payload",
            "filhos": [
                {
                    "nome": "Abrir conectores/<conector>/formatos/formato-<conector>.json",
                    "filhos": []
                },
                {
                    "nome": "No manifesto conectores/<conector>/<conector>.json, conferir dependencias.arquivos antes de descricao: esta lista e a fonte segura usada por importar-conectores para saber quais arquivos compoem o conector e onde aloca-los. O manual HTML do utilizador deve aparecer como manualUsuario e papel manual-usuario.",
                    "filhos": []
                },
                {
                    "nome": "Definir entrada.modelos para comandos aceitos: operacao, dados, correlacao e campos obrigatórios 📋 spec_contratos_de_mensagem_espaco § C8: Todo payload deve possuir nome de contrato, versao semantica, descricao e exemplos validos",
                    "filhos": []
                },
                {
                    "nome": "Definir saida.modelos para resultado, erro e eventos publicados de volta via api.php 📋 spec_contratos_de_mensagem_espaco § C11: Contratos devem especificar erros de negocio e respostas esperadas usando respostaA",
                    "filhos": []
                },
                {
                    "nome": "NÃO: completar formato antes de qualquer teste real",
                    "filhos": []
                },
                {
                    "nome": "SIM: seguir para implementação do handler",
                    "filhos": []
                },
                {
                    "nome": "Alinhar contrato com formatos-escuta/protocolo-mensagem-siscore.v1.json: _sistema, _protocolo e payload 📋 spec_comunicacao_espaco_sisc_nativo § P1: fonte canonica formatos-escuta/protocolo-mensagem-siscore.v1.json",
                    "filhos": []
                },
                {
                    "nome": "DECISÃO — contrato permite validar mensagens sem depender de conhecimento implícito do handler? 📋 spec_contratos_de_mensagem_espaco § C8: payload deve ter nome de contrato e exemplos; § C12: Consumidores devem ignorar campos desconhecidos",
                    "filhos": []
                }
            ]
        },
        {
            "nome": "5 → IMPLEMENTAR HANDLER LER-MENSAGEM 📋 spec_comunicacao_espaco_sisc_nativo § C10: consumidor deve tratar arquivo recebido como fonte unica; § C11: respostas com respostaA mantendo processoId",
            "filhos": [
                {
                    "nome": "Criar arquivo em conectores/<conector>/handlers/<conector>.php ou caminho declarado no manifesto, sem link simbolico e sem caminho indireto. O runtime recusa handler fora da pasta handlers do proprio conector.",
                    "filhos": []
                },
                {
                    "nome": "Assinatura obrigatória: handler recebe o caminho do arquivo de mensagem como argumento; script deve iniciar com shebang para execução direta e estar com chmod +x.",
                    "filhos": []
                },
                {
                    "nome": "Ler exclusivamente o JSON da mensagem; não confiar em variáveis de ambiente para processoId, mensagemId, origem ou destino 📋 spec_comunicacao_espaco_sisc_nativo § C10: consumidor deve tratar o arquivo recebido como fonte unica de verdade e nao depender de variaveis de ambiente",
                    "filhos": []
                },
                {
                    "nome": "Chamar serviço externo com timeout, tratamento de erro, idempotência e logs seguros sem vazar segredos 📋 spec_resiliencia_timeout_retry_backpressure § C8: Toda chamada externa deve ter timeout explicito; § C9: Retries so para operacoes idempotentes; spec_seguranca_zero_trust_web_api § C11: logs nao devem expor segredos",
                    "filhos": []
                },
                {
                    "nome": "Envelope da mensagem recebida: toda mensagem entregue ao handler segue o formato canonico de formatos-escuta/protocolo-mensagem-siscore.v1.json com tres secoes obrigatorias: _sistema (id, criadoEm, transporte=pp --api), _protocolo (processoId, mensagemId, origem, destino, tipo, prioridade, respostaA, idempotencia) e payload (idmensagem, dados, _api com catalogo, destinoResolvido, formatoEscuta, regraComunicacao). O handler deve ler exclusivamente deste JSON; nunca confiar em variaveis de ambiente para correlacao.",
                    "filhos": []
                },
                {
                    "nome": "Resposta ao SISC via api.php: handler deve fazer POST HTTP para api.php com header Authorization: Bearer <token> (token de cliente cadastrado exclusivamente em <sistema>/token-externo/<cliente>.txt). Corpo JSON: idmensagem (do catalogo), dados (resultado do processamento), origem=conector__<nome>, processoId (preservado da mensagem recebida), respostaA=mensagemId (da mensagem recebida, para correlacao). Nunca usar pp --api para envio de respostas; sempre POST HTTP direto.",
                    "filhos": []
                },
                {
                    "nome": "NÃO: corrigir handler antes de ativar conector",
                    "filhos": []
                },
                {
                    "nome": "SIM: seguir para segredos e catálogo",
                    "filhos": []
                },
                {
                    "nome": "Para responder ao SISC: POST em api.php com idmensagem, dados, origem=conector__<conector>, processoId preservado e respostaA=mensagemId recebido 📋 spec_idempotencia_correlacao_e_ordem § C12: Respostas e erros devem manter correlacao por respostaA e processoId; spec_api_declarativa_catalogo_mensagens § C5: publicacao por api.php com idmensagem e dados",
                    "filhos": []
                },
                {
                    "nome": "Tornar executável: chmod +x conectores/<conector>/handlers/<conector>.php; o validador e o runtime recusam handler sem execução direta.",
                    "filhos": []
                },
                {
                    "nome": "Não usar shell_exec/system/passthru/eval/proc_open/popen/subprocess/child_process no handler e não acessar espaco/ diretamente. No sandbox novo espaco/ fica oculto e somente secretos/<conector>.json do proprio conector fica visivel, somente leitura.",
                    "filhos": []
                },
                {
                    "nome": "DECISÃO — handler processa mensagem, preserva correlação e nunca publica direto no espaco? 📋 spec_idempotencia_correlacao_e_ordem § C12: respostas e erros mantem correlacao por respostaA e processoId; § C8: toda operacao com efeito externo deve ter chave de idempotencia",
                    "filhos": []
                }
            ]
        },
        {
            "nome": "6 → SEGREDOS, CONFIGURAÇÃO, CATÁLOGO WEB-API E FRONT-API 📋 spec_segredos_configuracao_e_ambientes § C8: Segredos nunca versionados; spec_api_declarativa_catalogo_mensagens § C2: catalogo mapeia idmensagem para entidade SISC valida",
            "filhos": [
                {
                    "nome": "Guardar tokens de cliente SISC somente em <sistema>/token-externo/*.txt; guardar chaves/credenciais de servicos externos em secretos/; não gravar credenciais em conectores/<conector>/, conectores/<conector>/formatos/ ou web-api/ 📋 spec_segredos_configuracao_e_ambientes § C8: Segredos nunca devem ser versionados em repositorios, specs, mensagens do espaco, logs ou exemplos reais",
                    "filhos": []
                },
                {
                    "nome": "Cadastrar/revisar entrada em web-api/catalogo-<conector>.json apontando destino=conector__<conector>; ativar a mensagem com ativo=true somente quando o contrato estiver revisado; usar publica=true apenas para capacidade externa/descobrivel; depois rodar pp --atualizar-catalogo-mensagens para gerar web-api/catalogo-mensagens.json 📋 spec_api_declarativa_catalogo_mensagens § C2: catalogo deve mapear idmensagem para entidade SISC valida; § C3: destinos diretos como arquivo/URL/comando proibidos",
                    "filhos": []
                },
                {
                    "nome": "Se a mensagem sera acionada por componente frontend, declarar front-api no proprio item do catalogo: acao, metodo POST, csrf, autenticacao, modo, entrada com campos obrigatorios/tipos, dadosSisc e resposta. Em resposta.atualizar usar sempre exatamente o nome do conector; exemplo conector-email atualiza somente objeto visual id/name conector-email. O bloco deve permanecer ativo=false ate existir validação servidor e permissão de uso.",
                    "filhos": []
                },
                {
                    "nome": "Adaptador unico: conexao-externo/front-api.php recebe AJAX com {acao,dados}, procura a acao em web-api/catalogo-mensagens.json, valida entrada, monta dadosSisc e chama o SISC; o navegador nao envia token, idmensagem, destino ou origem; a resposta informa objetoVisual/atualizar com o nome do conector.",
                    "filhos": []
                },
                {
                    "nome": "NÃO: corrigir web-api/catalogo-<modulo>.json, front-api.entrada/dadosSisc/resposta.atualizar ou formato de dados e regenerar com pp --atualizar-catalogo-mensagens",
                    "filhos": []
                },
                {
                    "nome": "SIM: seguir para ativação controlada",
                    "filhos": []
                },
                {
                    "nome": "Para comandos públicos/críticos, declarar idempotenciaObrigatoria=true e correlacaoObrigatoria=true 📋 spec_idempotencia_correlacao_e_ordem § C8: Toda operacao com efeito externo deve possuir chave de idempotencia estavel por escopo de negocio",
                    "filhos": []
                },
                {
                    "nome": "Validar publicação sem gravar: pp --api=<idmensagem> --dados='{\"operacao\":\"ping\",\"dados\":{}}' --origem=sistema__operador --dry-run",
                    "filhos": []
                },
                {
                    "nome": "Autenticacao no api.php: o unico local canonico aceito para tokens de cliente e <sistema>/token-externo/*.txt. Variaveis de ambiente SISC_API_TOKEN/SISC_API_TOKENS e secretos/api-tokens.txt nao devem conter tokens de cliente e nao sao fonte valida. Cada arquivo pode conter token puro ou formato app=token; sem token em token-externo/ o endpoint retorna 503 desabilitado.",
                    "filhos": []
                },
                {
                    "nome": "Catalogo modular: o kit gitprog entrega web-api/catalogo-<conector>.json com mensagem inicial ativo=false, publica=false e front-api ativo=false ate revisao. Mensagens com ativo=true entram no agregado catalogo-mensagens.json; mensagens com publica:true aparecem no endpoint GET ?mensagens=1 do api.php. Apenas mensagens de negocio devem ser publicas; mensagens internas como agente-at.executar usam publica:false e nao sao expostas. Mensagens publicas exigem idempotenciaObrigatoria=true e correlacaoObrigatoria=true.",
                    "filhos": []
                },
                {
                    "nome": "DECISÃO — catálogo resolve idmensagem para conector correto, front-api expõe somente ações permitidas, resposta.atualizar é igual ao nome do conector e dry-run monta envelope válido? 📋 spec_api_declarativa_catalogo_mensagens § C13: Publicadores devem resolver idmensagem exclusivamente no agregado catalogo-mensagens.json; fontes humanas ficam em web-api/catalogo-*.json e o agregado é gerado por pp --atualizar-catalogo-mensagens; § C5: escrita atomica tmp+rename",
                    "filhos": []
                }
            ]
        },
        {
            "nome": "7 → ATIVAR E TESTAR NA ESCUTA 📋 spec_idempotencia_correlacao_e_ordem § C8: idempotencia estavel; spec_operacao_runbooks_e_incidentes § C9: nao editar arquivos do espaco manualmente",
            "filhos": [
                {
                    "nome": "Somente depois de manifesto, formato, manual HTML do utilizador, handler, segredos, catalogo modular com mensagem ativa, front-api revisado quando houver frontend, e agregado web-api/catalogo-mensagens.json atualizado: alterar \"ativo\": true em conectores/<conector>/<conector>.json para teste controlado",
                    "filhos": []
                },
                {
                    "nome": "Testar publicação real: pp --api=<idmensagem> --dados='{...}' --origem=sistema__operador --idempotencia=<chave> 📋 spec_idempotencia_correlacao_e_ordem § C8: operacao com efeito externo deve ter chave de idempotencia; § C14: duplicidade recusada na publicacao",
                    "filhos": []
                },
                {
                    "nome": "Processar ciclo controlado: pp --pulsar-escuta --lote=1",
                    "filhos": []
                },
                {
                    "nome": "Teste frontend/AJAX: componente em biblioteca-front ou pagina do produto deve enviar apenas {acao,dados} para conexao-externo/front-api.php; confirmar que somente o objeto visual cujo id/name é exatamente o nome do conector foi atualizado e que a resposta nao expõe token, stack trace ou caminho sensivel.",
                    "filhos": []
                },
                {
                    "nome": "Se precisar daemon: pp --ligar-escuta --intervalo=1 --paralelo=4; acompanhar com pp --status-escuta e espaco/escuta.log",
                    "filhos": []
                },
                {
                    "nome": "NÃO: seguir para diagnóstico",
                    "filhos": []
                },
                {
                    "nome": "SIM: registrar evidência e liberar operação",
                    "filhos": []
                },
                {
                    "nome": "Conferir espaco/eventos/<data>.jsonl, espaco/concluidas, espaco/erro e espaco/quarentena 📋 spec_operacao_runbooks_e_incidentes § C9: Operadores nao devem editar manualmente arquivos do espaco sem procedimento aprovado e backup",
                    "filhos": []
                },
                {
                    "nome": "runtime_comum.c (siscore/escuta/runtime_comum.c): codigo compartilhado entre runtime-agente e runtime-conector. Para conectores valida handlerLerMensagem como caminho relativo seguro em conectores/<conector>/handlers/, exige executavel direto e, por padrao, chama escuta/sandbox-handler. O sandbox cria namespace privado, oculta espaco/ e todos os secretos/ previsiveis e reexpoe somente secretos/<conector>.json do proprio conector como leitura.",
                    "filhos": []
                },
                {
                    "nome": "runtime-conector.c (siscore/escuta/runtime-conector.c): wrapper fino que chama runtime_comum.c com tipo=conector. A escuta invoca ./escuta/runtime-conector ler-mensagem <arquivo>; o runtime resolve handlerLerMensagem, aplica as guardas de caminho/execução e chama sandbox-handler salvo se SISC_SANDBOX_DESATIVADO estiver definido. Em gitconectores/testar-sandbox essa variável bloqueia emissão de selo.",
                    "filhos": []
                },
                {
                    "nome": "DECISÃO — mensagem concluiu com resposta/evento esperado?",
                    "filhos": []
                }
            ]
        },
        {
            "nome": "8 → DIAGNOSTICAR FALHAS DE CONECTOR 📋 spec_resiliencia_timeout_retry_backpressure § C8-C12; spec_idempotencia_correlacao_e_ordem § C8; spec_operacao_runbooks_e_incidentes § C10: reprocessamento verifica idempotencia",
            "filhos": [
                {
                    "nome": "Se destino inativo: conferir ativo=true e destino conector__<conector> no catálogo",
                    "filhos": []
                },
                {
                    "nome": "Se AJAX retorna acao front-api nao encontrada: conferir front-api.acao, front-api.ativo=true no catalogo modular e se o agregado web-api/catalogo-mensagens.json foi regenerado.",
                    "filhos": []
                },
                {
                    "nome": "Se AJAX retorna campo invalido ou alvo visual recusado: conferir front-api.entrada, resposta.atualizar e o componente visual id/name com o nome do conector; a validação do servidor prevalece sobre required/HTML do navegador.",
                    "filhos": []
                },
                {
                    "nome": "Se handler não encontrado: corrigir handlerLerMensagem e permissões de execução",
                    "filhos": []
                },
                {
                    "nome": "Se formato inválido: revisar conectores/<conector>/formatos/ e payload enviado 📋 spec_contratos_de_mensagem_espaco § C8: Todo payload deve possuir nome de contrato, versao semantica, descricao e exemplos validos",
                    "filhos": []
                },
                {
                    "nome": "Se falha externa: conferir timeout, credenciais em secretos/, status do serviço e política de retry/idempotência 📋 spec_resiliencia_timeout_retry_backpressure § C8: timeout explicito; § C11: circuit breakers protegem dependencias; spec_segredos_configuracao_e_ambientes § C12: rotacao de segredo sem rebuild",
                    "filhos": []
                },
                {
                    "nome": "NÃO: ajustar dado/configuração e pulsar novamente",
                    "filhos": []
                },
                {
                    "nome": "SIM: abrir GC orientado pelo pp --sa conforme operador-manual-gc e repetir testes",
                    "filhos": []
                },
                {
                    "nome": "Se mensagem duplicada: verificar chave de idempotência em espaco/idempotencia e catálogo 📋 spec_idempotencia_correlacao_e_ordem § C8: duplicidade deve ser recusada ja na publicacao; § C14: duplicidade de idempotencia recusada no mesmo escopo",
                    "filhos": []
                },
                {
                    "nome": "Para análise assistida: usar pp --agente=agente-at --ler-mensagem <arquivo-mensagem> quando aplicável",
                    "filhos": []
                },
                {
                    "nome": "DECISÃO — correção exige mudança de código/contrato? 📋 spec_contratos_de_mensagem_espaco § C9: Campos novos devem ser opcionais; remocoes e mudancas quebradoras exigem migracao planejada",
                    "filhos": []
                }
            ]
        },
        {
            "nome": "9 → IMPORTAÇÃO, REUSO E EVOLUÇÃO 📋 spec_segredos_configuracao_e_ambientes § C11: Ambientes devem ser isolados e nao compartilhar credenciais produtivas",
            "filhos": [
                {
                    "nome": "Antes de copiar de outro sistema, comparar nomes, formatos, handler e idmensagem para evitar colisão",
                    "filhos": []
                },
                {
                    "nome": "Após importar, nunca ativar automaticamente: revisar manifesto, segredos locais, catálogo local e contrato de payload 📋 spec_segredos_configuracao_e_ambientes § C11: Ambientes isolados sem compartilhar credenciais; spec_api_declarativa_catalogo_mensagens § C2: idmensagem unico por catalogo",
                    "filhos": []
                },
                {
                    "nome": "Quando evoluir operação, versionar formato e manter compatibilidade ou migração explícita 📋 spec_contratos_de_mensagem_espaco § C9: Campos novos opcionais; remocoes exigem migracao planejada; versionamento semantico",
                    "filhos": []
                },
                {
                    "nome": "Atualizar testes e exemplos de dry-run sempre que novas operações forem adicionadas 📋 spec_testes_microservicos_web_api_espaco § C9: Contratos de API e de mensagem devem ter fixtures de sucesso, erro e versao anterior",
                    "filhos": []
                },
                {
                    "nome": "Após alteração em comandos relacionados, reexecutar pp --atualizar-manual-conector para atualizar assinaturas e orientações",
                    "filhos": []
                }
            ]
        },
        {
            "nome": "10 → AUDITORIA E ENCERRAMENTO 📋 spec_operacao_runbooks_e_incidentes § C11: preservar evidencias; spec_documentacao_adrs_e_catalogo_servicos § C8: documento de catalogo com dono, contrato, mensagens",
            "filhos": [
                {
                    "nome": "Guardar evidências: comando pp --api usado, idempotência, mensagemId/processoId, evento e resultado externo 📋 spec_operacao_runbooks_e_incidentes § C11: Incidentes devem preservar evidencias: processoId, mensagemId, logs, eventos e versoes de servico",
                    "filhos": []
                },
                {
                    "nome": "Documentar operações suportadas e mapa idmensagem → destino no catálogo 📋 spec_documentacao_adrs_e_catalogo_servicos § C8: Cada microservico/conector deve ter documento de catalogo com dono, contrato HTTP e mensagens",
                    "filhos": []
                },
                {
                    "nome": "Registrar responsáveis por segredo externo e procedimento de rotação 📋 spec_segredos_configuracao_e_ambientes § C12: Rotacao de segredo deve ser possivel sem rebuild da imagem e com procedimento documentado",
                    "filhos": []
                },
                {
                    "nome": "Manter handler sem logs sensíveis e com tratamento de erro reproduzível 📋 spec_seguranca_zero_trust_web_api § C11: Erros, logs e mensagens de retorno nao devem expor segredos, tokens, stack traces ou conteudo sensivel",
                    "filhos": []
                },
                {
                    "nome": "FIM — conector criado/operado de forma rastreável, testável e segura",
                    "filhos": []
                }
            ]
        },
        {
            "nome": "11 → MANUAL DE CONSTRUÇÃO PARA LLMS INTERNAS — lacunas cobertas 📋 spec_documentacao_adrs_e_catalogo_servicos § C8: documento de catalogo com dono, contrato HTTP e mensagens; spec_testes_microservicos_web_api_espaco § C9: fixtures de sucesso, erro e versao anterior",
            "filhos": [
                {
                    "nome": "Finalidade deste manual: orientar exclusivamente LLMs internas quando precisarem construir, revisar ou completar conectores sob demanda. Não é manual humano, não é tutorial público e não deve ser tratado como material de distribuição externa. Fluxo externo obrigatório: o programador clona git@github.com:jrcostarrear/gitprog.git em qualquer diretório da própria máquina; esse conteúdo baixado é o kit completo para produzir, validar e enviar conector ao SISC.",
                    "filhos": []
                },
                {
                    "nome": "Verificação: o manual antigo cobria operação interna, criação/importação, manifesto, formato, handler, catálogo, front-api, escuta e diagnóstico; faltavam instruções explícitas para a LLM montar pacote interno validado, usar validador local, preparar envio pós-validação, distinguir preencher/automático e generalizar exemplos diversos por arquivo. Esta versão do comando passa a gerar esses ramos.",
                    "filhos": []
                },
                {
                    "nome": "Regra de linguagem para LLM interna: explicar como construir conector novo do zero; tratar nomes do exemplo como valores a substituir; tratar processoId, respostaA, idempotência recebida, defaults e campos resolvidos pelo ambiente como valores preservados/automáticos; não ensinar a depender de detalhe interno da instalação como contrato público.",
                    "filhos": []
                },
                {
                    "nome": "Árvore mental obrigatória do pacote interno dentro do clone GitHub: conector-<nome>/manifesto, formato do payload, handler executável, manual HTML técnico do conector, catálogo modular, mensagem de teste, arquivo sample de configuração/segredos, README e validador local. A LLM deve verificar cada peça antes de sugerir empacotamento ou envio interno.",
                    "filhos": []
                },
                {
                    "nome": "Qualidade esperada das respostas da LLM: para cada arquivo citado, dizer finalidade, campos que a LLM deve preencher/adaptar, campos fixos/automáticos, exemplo realista em bloco de código, riscos de segurança, como testar e erro comum com correção.",
                    "filhos": []
                }
            ]
        },
        {
            "nome": "12 → ESTRUTURA DO PACOTE INTERNO PARA NOVOS CONECTORES 📋 spec_segredos_configuracao_e_ambientes § C8: segredos nunca versionados; spec_seguranca_zero_trust_web_api § C11: logs sem segredos; spec_testes_microservicos_web_api_espaco § C9: contratos testados",
            "filhos": [
                {
                    "nome": "Manifesto: declarar nome conector-<servico>, titulo, descricao, versao semantica, ativo, tipo=conector, controlador, formatoConector, dependencias.arquivos, servicoExterno, operacoes e manualUsuario. A LLM deve sugerir ativo=false durante preparação quando houver risco externo.",
                    "filhos": []
                },
                {
                    "nome": "Formato: declarar tipo=formato-conector, nome, versao, conector, descricao, entrada.modelos com campos/tipos/obrigatoriedade/valoresAceitos/regras/exemplos e saida.modelos com sucesso, dados e erro. Campo sem descrição deve ser tratado como pendência.",
                    "filhos": []
                },
                {
                    "nome": "Handler: pode ser PHP, Python, Node, Bash, C, Go, Rust ou outro executável; deve receber exatamente o caminho do JSON, ler _protocolo e payload.dados, validar dados, usar timeout em serviço externo, preservar correlação e sair com código 0 em sucesso ou diferente de 0 em erro.",
                    "filhos": []
                },
                {
                    "nome": "Catálogo: declarar mensagem pública somente quando revisada, destino conector__<nome>, idmensagem previsível, tipoMensagem=comando, prioridade, ativo, publica, idempotenciaObrigatoria=true e correlacaoObrigatoria=true; front-api é opcional e começa inativo até revisão; se existir frontend, resposta.atualizar deve ser exatamente o nome do conector.",
                    "filhos": []
                },
                {
                    "nome": "Manual técnico do conector: deve ensinar objetivo, operações, payloads, exemplos completos, saída, credenciais necessárias sem senha real, erros comuns, limites, timeouts, dependências e exemplos de consumo interno. Manual vazio ou genérico reprova qualidade mesmo que compile.",
                    "filhos": []
                },
                {
                    "nome": "Harmonização obrigatória dos manuais: pp --atualizar-manual-conector deve percorrer sisc/ e atualizar todos os HTMLs cujo nome contenha manual-conector. Cada arquivo mantém seu tom e público: ajuda-conectores/manual-conectores.html é manual interno amplo de operador/revisor, gitprog/manual-conector.html é instrutivo para programador externo, e manual de conector específico é direto para consumidores daquele conector. Não copiar o manual amplo para <sistema>/public.",
                    "filhos": []
                },
                {
                    "nome": "Segredos e configuração: pacote pode conter apenas .sample com placeholders; configuração real fica no ambiente de instalação. A LLM deve recusar qualquer sugestão que coloque token real, senha, chave privada, app password ou certificado privado no pacote.",
                    "filhos": []
                },
                {
                    "nome": "Mensagem de teste: deve conter envelope mínimo, idmensagem do catálogo e payload.dados seguro. Teste não deve movimentar dinheiro, enviar mensagem real, alterar estoque real ou chamar produção sem sandbox/autorização. Para passar no validador e receber selo-sandbox, o manifesto deve declarar testeSandbox.permitido=true, testeSandbox.semEfeitoReal=true e descricao com justificativa.",
                    "filhos": []
                }
            ]
        },
        {
            "nome": "13 → VALIDADOR LOCAL — INFORMAÇÕES QUE A LLM DEVE CONHECER 📋 spec_testes_microservicos_web_api_espaco § C9: testes locais antes de publicar; spec_seguranca_zero_trust_web_api § C8-C11: validação e falha segura",
            "filhos": [
                {
                    "nome": "O validador é inspetor de qualidade do pacote: confirma exatamente um conector, nome conector-<nome> sem underscore, manifesto com campos obrigatórios, testeSandbox obrigatório, formato com entrada/saída, catálogo com mensagem ativa, front-api.resposta.atualizar igual ao nome do conector, handler existente/executável direto com shebang/ELF, manual HTML completo, mensagem de teste, ausência de links simbolicos, caminhos inseguros e segredos evidentes.",
                    "filhos": []
                },
                {
                    "nome": "Interpretação: [OK] passou; [AVISO] revisar documentação/clareza/compatibilidade; [ERRO] bloqueia empacotamento. A LLM nunca deve orientar empacotar com erro; com aviso deve pedir revisão consciente antes do envio.",
                    "filhos": []
                },
                {
                    "nome": "Erros comuns: nome do diretório diferente do manifesto; nome com underscore; handler sem chmod +x ou sem shebang; handler fora de conectores/<nome>/handlers; caminho absoluto, .., ., // ou barra invertida; link simbolico; formato sem saida; catálogo sem mensagem ativa; front-api.resposta.atualizar diferente do nome do conector; testeSandbox ausente; mensagem de teste sem payload.dados; segredo real detectado; comando shell perigoso.",
                    "filhos": []
                },
                {
                    "nome": "O validador não executa o handler nem garante que API externa está correta, serviço está online, regra de negócio está completa, runtime existe em todo servidor, nem que operação financeira/destrutiva tem aprovação humana. A LLM deve explicar que validação local não substitui selo-sandbox e revisão humana para integrações críticas.",
                    "filhos": []
                }
            ]
        },
        {
            "nome": "14 → EMPACOTAR E ENVIAR DEPOIS DE VALIDADO 📋 spec_documentacao_adrs_e_catalogo_servicos § C8: catalogo com dono e contrato; spec_operacao_runbooks_e_incidentes § C11: preservar evidencias",
            "filhos": [
                {
                    "nome": "Fluxo pós-validação: dentro do clone gitprog baixado do GitHub em qualquer diretório da máquina do programador, rodar validador, confirmar aprovado, conferir ausência de segredos reais, conferir nome/versão, gerar compactado, abrir pacote em pasta temporária, validar de novo, enviar pelo canal interno indicado e guardar hash/versão/data/protocolo. Depois do envio, aguardar selo-validacao e selo-sandbox emitidos pelo servidor para o SHA256 do pacote exato.",
                    "filhos": []
                },
                {
                    "nome": "Comando recomendado: mkdir -p dist; ./validar-conector && tar --exclude='./dist' --exclude='.git' --exclude='*.log' --exclude='.env' -czf dist/conector-<servico>-1.0.0.tar.gz .  Preferir .tar.gz/.tgz; .zip é aceito quando necessário, mas permissões do handler devem ser conferidas.",
                    "filhos": []
                },
                {
                    "nome": "Checklist de envio: um único conector; manifesto/formato/catálogo/handler/manual/teste/sample presentes; handler executável direto em conectores/<nome>/handlers com shebang/ELF; sem links simbolicos; sem caminhos inseguros; dependencias instalaveis apenas em conectores/<nome>/ ou web-api/; README/manual explicam objetivo, payload, saída, erros e credenciais; testeSandbox declarado com permitido=true, semEfeitoReal=true e descricao; versão do manifesto bate com pacote; pacote abre e valida em diretório temporário.",
                    "filhos": []
                },
                {
                    "nome": "Metadados do envio interno: nome do conector, versão, resumo em uma frase, operações suportadas, dependências/runtime, modo sandbox, limitações conhecidas e responsável técnico. Não depender de conversa externa: tudo necessário deve estar dentro do pacote.",
                    "filhos": []
                },
                {
                    "nome": "Selos do servidor: validar-recebidos em /var/www/html/gitconectores emite <pacote>.selo-validacao.json; testar-sandbox instala no testesis, faz preflight do runtime/sandbox, recusa se SISC_SANDBOX_DESATIVADO estiver definido, chama api.php com dryRun=true e executar=true, aguarda conclusão e emite <pacote>.selo-sandbox.json. instalar-aprovados no siscore real deve recusar sem os dois selos válidos.",
                    "filhos": []
                },
                {
                    "nome": "Cada selo deve estar preso ao SHA256 do pacote e assinado por HMAC-SHA256 com chave interna fora do controle do programador. Se o pacote mudar ou o selo for copiado de outro pacote, a assinatura/hash deve falhar.",
                    "filhos": []
                }
            ]
        },
        {
            "nome": "15 → EXEMPLOS DIVERSOS PARA A LLM GENERALIZAR CONECTORES 📋 spec_contratos_de_mensagem_espaco § C8: exemplos válidos; spec_idempotencia_correlacao_e_ordem § C8: idempotência em operações com efeito externo",
            "filhos": [
                {
                    "nome": "Conector clima: operação consultar_previsao; campos cidade, data opcional e unidade; segredo sample com endpoint/apiKey; handler valida cidade/data, chama API com timeout e retorna temperatura/chuva/alertas. Risco baixo, mas exige limite de taxa e tratamento de indisponibilidade.",
                    "filhos": []
                },
                {
                    "nome": "Conector CRM/leads: operações criar_lead e consultar_lead; campos nome, email, telefone, origemLead; segredo sample com endpoint/token; handler valida email, usa upsert/idempotência por email e retorna id/status. Risco médio por duplicidade e dados pessoais.",
                    "filhos": []
                },
                {
                    "nome": "Conector pagamentos: operações criar_cobranca, consultar_cobranca, cancelar_cobranca; campos valor, moeda, referenciaPedido, vencimento; segredo sample com clientId/clientSecret/certificado; handler valida valor e usa Idempotency-Key. Risco alto: nunca criar cobrança sem referência estável.",
                    "filhos": []
                },
                {
                    "nome": "Conector estoque/ERP: operações consultar_saldo e ajustar_saldo; campos sku, quantidade, deposito, motivo; segredo sample com endpoint/token; handler valida SKU, exige motivo para escrita e previne concorrência. Risco alto quando altera saldo.",
                    "filhos": []
                },
                {
                    "nome": "Conector OCR/documentos: operação extrair_texto; campos arquivo, tipoDocumento, idioma, extrairCampos; segredo sample com endpoint/apiKey; handler valida caminho relativo permitido, tamanho e privacidade antes de enviar. Risco de sigilo e vazamento de documento.",
                    "filhos": []
                }
            ]
        },
        {
            "nome": "CÓDIGO-FONTE LIDO NESTA GERAÇÃO — manual de conector derivado do estado atual de comandos, runtime, catálogo, specs e ajudas",
            "filhos": [
                {
                    "nome": "LEI FONTE-CÓDIGO: estes comandos só podem pesquisar arquivos integrantes do código de funcionamento do SISC: fontes C/H/PHP/scripts, comandos, ajudas JSON, specs JSON, agentes JSON, manifestos, formatos, catálogos, runtimes e configs operacionais. É proibido usar como fonte JSONs de contexto/entendimento/artefatos gerados, como arvores/operador-manual-*.json e arvores/reversao-gc.json.",
                    "filhos": []
                },
                {
                    "nome": "Garantia operacional: esta seção lê apenas arquivos classificados pela lei como código-fonte/contrato/configuração operacional no momento da invocação; mudanças em conectores/API/escuta alteram o conteúdo gerado",
                    "filhos": []
                },
                {
                    "nome": "Código lido: criar-sistema — fonte/script lido: ok size=33717 mtime=2026-08-30T13:08:51Z fnv=4cf66d54875e7940; executável/script: ok size=30736 mtime=2026-08-30T13:09:22Z fnv=f3915b77c4981bd4; ajuda: ok size=4624 mtime=2026-08-30T13:09:02Z fnv=0bd755e92d7971f4; manifesto agente: ausente; flags no código/script: --criar-sistema=, --criar-sistema, --ajuda:, --ajuda, --help; flags na ajuda: --criar-sistema, --ajuda:, --criar-sistema=, --ajuda, --help; funções detectadas: main, obter_gid_wwwdata, ajustar_grupo_espaco, aplicar_permissao_espaco, aplicar_permissao_secretos, termina_com, uso, eh_dir, normalizar_nome, criar_dir, copiar_arquivo_simples, copiar_arquivos_escuta, copiar_arquivos_public, substituir_texto, copiar_exemplo_cliente, copiar_makefile_raiz, copiar_arquivos_de_subdir, copiar_conector_email_padrao, copiar_arquivos_essenciais_sisc, criar_htaccess_negado, modo_dir_template, copiar_estrutura_rec, copiar_estrutura, garantir_relspec_dir, obter_raiz_sisc, verificar_execucao_em_sisc; caminhos literais: %s/secretos, %s/secretos/conector-email.json,   novo sistema a partir do template siscore/. Specs não são copiadas: a fonten,   canônica continua em core/biblioteca-specs/.n,   Lê recursivamente os diretórios existentes em siscore/ e recria a mesman,   Diretórios de espaco/ são criados com permissão compatível com api.phpn,     cd /var/www/html/sisc && pp --criar-sistema=meu-projeton,   conectores/, conexao-externo/ (api.php e front-api.php),n,   public/ (sisc-api-cliente.php), escuta/, web-api/, formatos-escuta/,n,   token-externo/, relspec/n,   spec-diretivas/ pode existir como área local opcional de diretivas/overrides;n,   relspec/ é a área local de relatórios/artefatos derivados de specs;n,   a biblioteca padrão de specs fica somente em core/biblioteca-specs/.n,   cd /var/www/html/sisc && pp --criar-sistema='Meu Projeto'n, %s/%s,   [copiado] escuta/%s%sn, %s/public; ajuda.nome=criar-sistema; ajuda.descricao=não extraída",
                    "filhos": []
                },
                {
                    "nome": "Código lido: empacotar-conector — fonte/script lido: ok size=36957 mtime=2026-08-22T10:06:04Z fnv=3d490836d9650a59; executável/script: ok size=39848 mtime=2026-08-24T10:16:26Z fnv=5d24642055df03bb; ajuda: ok size=2309 mtime=2026-08-22T09:32:32Z fnv=78b34bb608fc9898; manifesto agente: ausente; alerta ajuda possivelmente desatualizada; flags no código/script: --empacotar-conector=, --empacotar-conector, --n, --rn, --ajuda, --help; flags na ajuda: --empacotar-conector, --empacotar-conector=; funções detectadas: main, uso, nome_seguro, termina_com, garantir_dir, mkdir_p, garantir_dir_pai, arquivo_existe, ler_arquivo, copiar_arquivo, rellist_init, rellist_contem, rellist_add, rellist_free, basename_seguro, extrair_string_json, json_escape_out, json_composto_fim, localizar_array_json_chave, localizar_objeto_json_chave, proximo_objeto_json, stringlist_add_unico, stringlist_free, coletar_strings_array_json, substr_objeto_json, rel_declarado_empacotavel, adicionar_rel_declarado, coletar_dependencias_arquivos_manifesto, coletar_arquivos_pacote_manifesto, liberar_blocos, coletar_blocos_catalogo_destino, escrever_bloco_indentado, gravar_fragmento_catalogo, preparar_fragmento_catalogo, rel_seguro, rm_rf; caminhos literais: ../restricao.h,     sisc/core/biblioteca-conectores/<nome>.tar.gzn,   Inclui conectores/<nome>/<nome>.json, o handler declarado em handlerLerMensagem,n,   conectores/<nome>/formatos/<formato>.json, arquivos extras declarados emn,   dependencias no manifesto do pacote. Não inclui secretos/.n,     [\"conectores/<nome>/\", \"conectores/<nome>/handlers/lib.php\"]n,   Cada item deve ser caminho relativo seguro sob conectores/. Diretoriosn,   sao copiados recursivamente; secretos/ e caminhos absolutos sao proibidos.n, CATALOGO-MENSAGENS-CONECTOR.json, web-api/, conectores/, /secretos/, /secrets/, /secretos, /secrets, ,n  \"origem\": \"web-api/catalogo-mensagens.json\",n  \"mensagens\": [n, web-api/catalogo-%s.json, %s/%s, %s/web-api/catalogo-mensagens.json, web-api/catalogo-, .json, web-api/catalogo-mensagens.json, conectores/%s/%s.json, /handlers/, /formatos/, %s/conectores/%s/%s.json, %s/%s.tar.gz; ajuda.nome=empacotar-conector; ajuda.descricao=não extraída",
                    "filhos": []
                },
                {
                    "nome": "Código lido: importar-conectores — fonte/script lido: ok size=42221 mtime=2026-09-02T09:53:48Z fnv=3351d44ced5bb1fb; executável/script: ok size=44384 mtime=2026-09-02T09:53:54Z fnv=3e5223f12d8baa06; ajuda: ok size=2874 mtime=2026-09-02T09:53:54Z fnv=0037256e7edb577d; manifesto agente: ausente; flags no código/script: --importar-conectores, --todos, --remover=, --purge-vestigios, --purge-biblioteca, --fim=, --n, --atualizar-catalogo-mensagens, --ajuda, --help, --todas; flags na ajuda: --importar-conectores, --remover=, --purge-vestigios, --purge-biblioteca, --todos; funções detectadas: main, uso, termina_com, shell_quote, rm_rf, cmp_pacote, listar_pacotes, parse_selecao, entrada_tar_segura, validar_pacote, perguntar_sobrescrita_dependencias, arquivo_existe, ler_arquivo_texto, garantir_dir, mkdir_p, garantir_dir_pai, copiar_arquivo_preservando, gravar_texto_atomico, pular_espacos_json, extrair_string_json_simples, extrair_bool_json_simples, json_composto_fim, localizar_array_json_chave, localizar_objeto_json_chave, proximo_objeto_json, substr_objeto_json, deps_init, deps_free, contem_segredos_rel, normalizar_rel_dependencia, dependencia_catalogo, dependencia_segura, deps_add, ler_string_json_token, coletar_dependencias_manifesto, validar_dependencias_minimas; caminhos literais: ../restricao.h,   Lista pacotes em sisc/core/biblioteca-conectores/*.tar.gz e importa osn,   bloco de catalogo, mescla em web-api/catalogo-mensagens.json apenasn,   --remover=<conector> remove o diretorio conectores/<conector>, o catalogon,   modular web-api/catalogo-<conector>.json e regenera o catalogo agregado.n,   --purge-biblioteca remove o pacote central core/biblioteca-conectores/<conector>.tar.gz.n, %s/%s, PACOTE-CONECTOR.json, CATALOGO-MENSAGENS-CONECTOR.json, web-api/catalogo-, .json, conectores/,   Arquivos existentes serao sobrescritos. Continuar? [s/N]: , /secretos/, /secrets/, /secretos, /secrets, conectores/%s/%s.json, conectores/%s.json, conectores/%s/formatos/formato-%s.json, conectores/%s/formatos/%s, find %s -type f -delete 2>/dev/null; rmdir %s 2>/dev/null, %s/web-api/catalogo-mensagens.json,   [erro] falha ao criar web-api/catalogo-mensagens.jsonn, %s/conectores/%s; ajuda.nome=importar-conectores; ajuda.descricao=não extraída",
                    "filhos": []
                },
                {
                    "nome": "Código lido: atualizar-catalogo-mensagens — fonte/script lido: ausente; executável/script: ok size=5883 mtime=2026-08-22T11:10:44Z fnv=305d88cc67b9cd68; ajuda: ok size=2175 mtime=2026-08-22T11:15:15Z fnv=308093147aeb3479; manifesto agente: ausente; flags no código/script: --api, --atualizar-catalogo-mensagens, --dry-run, --verificar, --ajuda, --help; flags na ajuda: --atualizar-catalogo-mensagens, --verificar, --api, --dry-run; funções detectadas: funções não extraídas do trecho lido; caminhos literais: )         out.append(m)     return out def montar(base: Path):     web = base / , )     atual_path = web / , , file=sys.stderr)         return 2     base = Path.cwd()     try:         catalogo, fragmentos = montar(base)         texto = dumps_catalogo(catalogo)         out = base / ,  / , Catalogo agregado atualizado: web-api/catalogo-mensagens.json; ajuda.nome=atualizar-catalogo-mensagens; ajuda.descricao=não extraída",
                    "filhos": []
                },
                {
                    "nome": "Código lido: api — fonte/script lido: ok size=45533 mtime=2026-08-22T09:23:12Z fnv=332d2576b66b8fa4; executável/script: ok size=48024 mtime=2026-08-24T10:15:36Z fnv=e1077dfbd7158535; ajuda: ok size=7456 mtime=2026-08-12T09:32:48Z fnv=1c2ba3ee332600dd; manifesto agente: ausente; alerta ajuda possivelmente desatualizada; flags no código/script: --api=, --dados=, --api, --ajuda:, --ajuda, --help, --ajuda=, --dados-arquivo=, --dados, --dados-arquivo, --origem=, --processo-id=, --mensagem-id=, --resposta-a=, --idempotencia=, --prioridade=, --tipo=, --dry-run; flags na ajuda: --api=, --dados=, --api, --ajuda:, --ajuda, --help, --ajuda=, --dados-arquivo=, --dados, --dados-arquivo, --origem=, --processo-id=, --mensagem-id=, --resposta-a=, --idempotencia=, --prioridade=, --tipo=, --dry-run; funções detectadas: main, uso, fmt_checked, path_join, mkdir_p, is_regular_file, read_file, json_new, json_free, perr, pws, plit, hexv, pstring, pvalue, parray, pobject, pnumber, json_parse_text, load_json, obj_get, obj_str, obj_bool, ends_with_str, rel_formato_conector, validar_formato_conector_origem, json_escape, json_write, valid_id, starts_with, valid_entidade, valid_tipo_msg, valid_prioridade, first_str, entry_id_matches, find_entry_in_array, entry_publica_api, find_catalog_entry, carregar_entrada, entidade_id, validar_destino_registrado, now_iso, gerar_id, fnv1a64_bytes, sanitize_file_id, parece_json_inline, carregar_dados_texto, selecionar_dados_payload, escrever_mensagem, publicar_marker_exclusivo; caminhos literais: ../restricao.h,   web-api/catalogo-mensagens.json, resolve o destino e grava uma mensagemn,   válida em espaco/entrada para a escuta.c entregar.n,   --dados=arquivo.json           Atalho para ler dados de um arquivo JSONn,   --dados-arquivo=arquivo.json   Arquivo JSON explíciton,     pp --api=001 --dados-arquivo=cliente.jsonn,   --idempotencia=<chave>         Define _protocolo.idempotencia.chaven,   web-api/catalogo-mensagens.json deve mapear idmensagem para destino SISC.n,   pp --api=001 --dados-arquivo=cliente-dados.json --origem=conector__webn, api: texto/caminho excede limite interno.n, %s/%s, conectores/%s/formatos/formato-%s.json, conectores/formatos/formato-%s.json, .json, conectores/, conectores/%s/formatos/%s, conectores/formatos/%s, %s/web-api/catalogo-mensagens.json, api: idmensagem '%s' nao encontrado em web-api/catalogo-mensagens.jsonn, %s/agentes/%s.json, %s/%016llx.idx; ajuda.nome=api; ajuda.descricao=não extraída",
                    "filhos": []
                },
                {
                    "nome": "Código lido: ligar-escuta — fonte/script lido: ausente; executável/script: ok size=3460 mtime=2026-09-02T20:19:37Z fnv=7a63b19dda545489; ajuda: ausente; manifesto agente: ausente; flags no código/script: --ligar-escuta, --base=, --base, --lote=, --paralelo=, --lote-ator=, --intervalo=, --intervalo-limpeza=, --log-compacto, --log-detalhado, --validar-marcador-api, --ajuda, --help; flags na ajuda: nenhuma flag -- detectada no trecho lido; funções detectadas: funções não extraídas do trecho lido; caminhos literais: $d/escuta/escuta, $d/espaco, $base/espaco/locks, $lockdir/escuta-daemon.pid, $lockdir/escuta.lock, $base/espaco/escuta.log, $lockdir/escuta-daemon.logpath, $base/espaco/tmp, ${fallback_user//[^A-Za-z0-9._-]/-}, $base/espaco/tmp/escuta-${fallback_user}-$(id -u 2>/dev/null || echo 0).log, ligar-escuta: sem permissao para criar log em espaco/escuta.log nem em espaco/tmp, escuta ligada para $base (pid=$pid, log=espaco/escuta.log); ajuda.nome=não extraído; ajuda.descricao=não extraída",
                    "filhos": []
                },
                {
                    "nome": "Código lido: status-escuta — fonte/script lido: ausente; executável/script: ok size=2400 mtime=2026-09-02T20:19:45Z fnv=4ea0d92b2ad2d693; ajuda: ausente; manifesto agente: ausente; flags no código/script: --status-escuta, --base=, --json, --base, --ajuda, --help; flags na ajuda: nenhuma flag -- detectada no trecho lido; funções detectadas: funções não extraídas do trecho lido; caminhos literais: $d/escuta/escuta, $d/espaco, $base/espaco/locks, $lockdir/escuta-daemon.pid, $lockdir/escuta.lock, $base/espaco/escuta.log, $lockdir/escuta-daemon.logpath,  2>/dev/null || true), ${log#$base/}; ajuda.nome=não extraído; ajuda.descricao=não extraída",
                    "filhos": []
                },
                {
                    "nome": "Código lido: pulsar-escuta — fonte/script lido: ausente; executável/script: ok size=1451 mtime=2026-08-28T14:57:14Z fnv=ca93dd3858ceb222; ajuda: ok size=3331 mtime=2026-08-28T14:57:28Z fnv=d47b701d028269d3; manifesto agente: ausente; flags no código/script: --pulsar-escuta, --base=, --base, --intervalo=, --paralelo=, --lote-ator=, --timeout-ator=, --timeout-processamento=, --lote=, --max-tentativas=, --intervalo-limpeza=, --log-compacto, --log-detalhado, --validar-marcador-api, --ajuda, --help, --once; flags na ajuda: --pulsar-escuta, --base=, --intervalo=, --paralelo=, --lote-ator=, --timeout-ator=, --timeout-processamento=, --lote=, --max-tentativas=, --intervalo-limpeza=, --log-compacto, --log-detalhado, --validar-marcador-api; funções detectadas: funções não extraídas do trecho lido; caminhos literais: $d/escuta/escuta, $d/espaco; ajuda.nome=pulsar-escuta; ajuda.descricao=não extraída",
                    "filhos": []
                },
                {
                    "nome": "Código lido: desligar-escuta — fonte/script lido: ausente; executável/script: ok size=1992 mtime=2026-08-28T14:29:37Z fnv=eb03d308dcfec2c0; ajuda: ausente; manifesto agente: ausente; flags no código/script: --desligar-escuta, --base=, --base, --ajuda, --help; flags na ajuda: nenhuma flag -- detectada no trecho lido; funções detectadas: funções não extraídas do trecho lido; caminhos literais: $d/escuta/escuta, $d/espaco, $base/espaco/locks, $lockdir/escuta-daemon.pid, $lockdir/escuta.lock; ajuda.nome=não extraído; ajuda.descricao=não extraída",
                    "filhos": []
                },
                {
                    "nome": "Código lido: setar-escuta — fonte/script lido: ok size=1454 mtime=2026-08-06T17:40:29Z fnv=b28050f4cdd2c014; executável/script: ok size=16576 mtime=2026-08-16T17:46:28Z fnv=509d3223b8a0b542; ajuda: ok size=2330 mtime=2026-08-12T09:32:48Z fnv=215751b82407d847; manifesto agente: ausente; flags no código/script: --setar-escuta, --ajuda, --ligar-escuta, --desligar-escuta, --status-escuta, --pulsar-escuta, --setar-escuta=, --help; flags na ajuda: --setar-escuta, --ajuda, --ligar-escuta, --desligar-escuta, --status-escuta, --pulsar-escuta, --setar-escuta=; funções detectadas: main, uso; caminhos literais: ../restricao.h; ajuda.nome=setar-escuta; ajuda.descricao=não extraída",
                    "filhos": []
                },
                {
                    "nome": "Código lido: agente-at — fonte/script lido: ausente; executável/script: ausente; ajuda: ok size=3168 mtime=2026-08-22T11:40:24Z fnv=3341ef0c7be23cbc; manifesto agente: ok size=4253 mtime=2026-08-22T11:17:31Z fnv=3bf8cb44f205111a; flags no código/script: nenhuma flag -- detectada no trecho lido; flags na ajuda: --agente=, --ler-mensagem, --ajuda:, --parallm, --atualizar-manual-funcional, --divergencia-sistema, --ajuda, --help, --sa=, --prompt=, --rel; funções detectadas: funções não extraídas do trecho lido; caminhos literais: nenhum caminho literal relevante detectado; ajuda.nome=agente-at; ajuda.descricao=não extraída; /var/www/html/sisc/core/biblioteca-agentes-fixos/agente-at.json — ok size=4253 mtime=2026-08-22T11:17:31Z fnv=3bf8cb44f205111a; nome=agente-at; titulo=Agente AT — Executor Técnico Autônomo; descricao/objetivo=Agente fixo global que recebe contexto do pp --parallm via espaço SISC e executa alterações por bloco nativo em core/comandos/agente.c.",
                    "filhos": []
                },
                {
                    "nome": "siscore/escuta/runtime-conector.c — ok size=129 mtime=2026-07-11T16:33:22Z fnv=3edc968db8ea9666; flags=nenhuma flag -- detectada no trecho lido; funções=main; caminhos=nenhum caminho literal relevante detectado",
                    "filhos": []
                },
                {
                    "nome": "siscore/escuta/runtime_comum.c — ok size=30981 mtime=2026-09-02T20:32:11Z fnv=e5b10060d7018aaa; flags=--ler-mensagem, --ler-mensagens-arquivo; funções=die_msg, fmt_checked, path_join, raiz_sisc_de_base, is_regular_file, mkdir_p, read_file, json_new, json_free, perr, pws, plit, hexv, pstring, pvalue, parray, pobject, pnumber, json_parse, obj_get, obj_str, obj_bool, obj_int, manifesto_biblioteca_permitido, ends_with_str, rel_formato_conector, validar_formato_conector, load_json, valid_id, starts_with, valid_entidade, extrair_protocolo, first_str, handler_ler_mensagem, shell_quote, rel_path_seguro, preparar_handler_conector, sanitize; caminhos=ERRO: caminho/texto excede limite interno, %s/%s, conectores/%s/formatos/formato-%s.json, conectores/formatos/formato-%s.json, .json, conectores/, conectores/%s/formatos/%s, conectores/formatos/%s, conectores/%s/handlers/, espaco/tmp/respostas, %s/%s.out, %s/escuta/sandbox-handler, ERRO: sandbox-handler ausente/sem execucao em escuta/; handler nao sera executado sem isolamento, espaco/tmp, %s/runtime-saida-%ld-%d.out, espaco/runtime, %s/%s__%s.json, %s.json, %s/%s.json",
                    "filhos": []
                },
                {
                    "nome": "siscore/escuta/escuta.c — ok size=102344 mtime=2026-09-02T20:38:04Z fnv=b83d271fd603feca; flags=nenhuma flag -- detectada no trecho lido; funções=die, fmt_checked, path_join, ends_with, base_name, raiz_sisc_de_base, mkdir_p, is_regular_file, file_mtime, now_iso, today_yyyymmdd, parse_iso_utc, prioridade_peso, json_escape, log_evento_suprimivel, log_event_fp, log_event_flush, log_event_close, log_event, xcalloc, xstrdup, sinalizar_parada, json_new, json_free, jp_error, jp_ws, jp_lit, hex_digit_val, jp_string, jp_value, jp_array, jp_object, jp_number, json_parse_text, json_obj_get, json_str, json_bool_default, rel_formato_conector; caminhos=Texto/caminho excede limite interno., %s/%s, %s/%s.jsonl, conectores/%s/formatos/formato-%s.json, conectores/formatos/formato-%s.json, .json, conectores/, conectores/%s/formatos/%s, conectores/formatos/%s, tmp/respostas, %s/%s.out, %s__%s.json, mensagem.json, %s/%s.idx, %s/%08d.idx, dependencia %s terminou em erro/quarentena, %s/%s%s, .jsonl, estado/terminais, estado/respondida, estado/concluidas, conteudo concluido removido; estado/concluidas preservado, %s.json, %s%s.json; trecho lido 48KiB",
                    "filhos": []
                },
                {
                    "nome": "/var/www/html/sisc/siscore/formatos-escuta/protocolo-mensagem-siscore.v1.json — ok size=11276 mtime=2026-08-28T15:18:15Z fnv=6b193efb02e0cbe5; nome=siscore-protocolo-objetos; titulo=não extraído; descricao/objetivo=Protocolo canonico de comunicacao assincrona entre objetos internos do siscore via diretorio espaco. Agentes, conectores, sistemas e objetos nunca falam diretamente entre si e nunca colocam mensagens diretamente no espaco; devem solicitar publicacao por pp --api, que monta este envelope, registra a publicacao e a escuta valida, roteia, aciona e audita.",
                    "filhos": []
                },
                {
                    "nome": "siscore/conexao-externo/front-api.php — ok size=14622 mtime=2026-08-30T10:58:26Z fnv=a385af2ca7e074ae; flags=nenhuma flag -- detectada no trecho lido; funções=funções não extraídas do trecho lido; caminhos=campo deve ser objeto/array: {$nome}",
                    "filhos": []
                },
                {
                    "nome": "siscore/conexao-externo/api.php — ok size=33453 mtime=2026-09-03T12:40:42Z fnv=c78991b22aeddc76; flags=--api, --once; funções=funções não extraídas do trecho lido; caminhos=idmensagem '$id' nao encontrado em web-api/catalogo-mensagens.json, publicadoPorHttp=api.phpn",
                    "filhos": []
                },
                {
                    "nome": "LEI FONTE-CÓDIGO: siscore/public/sisc-api-cliente.php — não usado como fonte de pesquisa; classificado como contexto de entendimento/uso, runtime, credencial ou artefato gerado, não como código integrante do funcionamento do SISC",
                    "filhos": []
                },
                {
                    "nome": "/var/www/html/sisc/siscore/web-api/catalogo-mensagens.json — ok size=4662 mtime=2026-09-03T12:59:52Z fnv=921d0c840cdd99fc; nome=Executar agente-at com contexto do parallm; titulo=não extraído; descricao/objetivo=Catalogo agregado automaticamente por gitconectores/instalar-aprovados.c",
                    "filhos": []
                },
                {
                    "nome": "LEI FONTE-CÓDIGO: siscore/web-api/catalogo-conector-email.json — não usado como fonte de pesquisa; classificado como contexto de entendimento/uso, runtime, credencial ou artefato gerado, não como código integrante do funcionamento do SISC",
                    "filhos": []
                },
                {
                    "nome": "/var/www/html/sisc/siscore/conectores/conector-email/conector-email.json — ok size=7784 mtime=2026-08-24T14:05:30Z fnv=a5a43514818533c9; nome=conector-email; titulo=Conector email; descricao/objetivo=Conector responsavel por envio real de emails via SMTP e busca real de emails via IMAP/socket. Deve trocar mensagens apenas via api.php (POST HTTP) e pela escuta do siscore, sem acesso direto a outros atores.",
                    "filhos": []
                },
                {
                    "nome": "/var/www/html/sisc/siscore/conectores/conector-email/formatos/formato-conector-email.json — ok size=2885 mtime=2026-08-16T14:07:08Z fnv=6ca4ff306c4b9591; nome=formato-conector-email; titulo=não extraído; descricao/objetivo=Contrato de payload aceito e produzido pelo conector conector-email. O conector aceita um endereco de email e uma acao: enviar mensagem ou receber emails daquele endereco.",
                    "filhos": []
                },
                {
                    "nome": "siscore/conectores/conector-email/handlers/conector-email.php — ok size=17139 mtime=2026-08-22T09:20:53Z fnv=20a605a4ef8d1db1; flags=nenhuma flag -- detectada no trecho lido; funções=funções não extraídas do trecho lido; caminhos=nenhum caminho literal relevante detectado",
                    "filhos": []
                },
                {
                    "nome": "LEI FONTE-CÓDIGO: siscore/core/biblioteca-conectores/conector-email.tar.gz — não usado como fonte de pesquisa; classificado como contexto de entendimento/uso, runtime, credencial ou artefato gerado, não como código integrante do funcionamento do SISC",
                    "filhos": []
                },
                {
                    "nome": "/var/www/html/sisc/core/biblioteca-specs/spec_integracoes_externas_e_conectores.json — ok size=15692 mtime=2026-08-30T10:53:46Z fnv=b1186ffcd6d6ca61; nome=integracoes_externas_e_conectores; titulo=Agente de Integracoes Externas e Conectores; descricao/objetivo=Atuar como consultor de conformidade da spec spec_integracoes_externas_e_conectores.json. Quando acionado por pp --agente=integracoes_externas_e_conectores:<conector>, analisar detalhadamente o conector informado e construir, exclusivamente via pp --sa, uma árvore em relspec/ com diagnóstico, evidências, riscos e atualizações necessárias para que o conector atenda a esta spec. Não aplicar alterações diretamente; as implementações serão realizadas pelos GCs que o operador criar nessa árvore.",
                    "filhos": []
                },
                {
                    "nome": "/var/www/html/sisc/core/biblioteca-specs/spec_contratos_de_mensagem_espaco.json — ok size=15245 mtime=2026-08-22T13:32:50Z fnv=43bf3e57d140fc54; nome=contratos_de_mensagem_espaco; titulo=Agente de Contratos de Mensagem do Espaco; descricao/objetivo=Atuar como consultor de conformidade da spec spec_contratos_de_mensagem_espaco.json. Quando acionado por pp --agente=contratos_de_mensagem_espaco:<conector>, analisar detalhadamente o conector informado e construir, exclusivamente via pp --sa, uma árvore em relspec/ com diagnóstico, evidências, riscos e atualizações necessárias para que o conector atenda a esta spec. Não aplicar alterações diretamente; as implementações serão realizadas pelos GCs que o operador criar nessa árvore.",
                    "filhos": []
                },
                {
                    "nome": "/var/www/html/sisc/core/biblioteca-specs/spec_orquestracao_processos_assincronos.json — ok size=15231 mtime=2026-08-22T13:32:50Z fnv=9de036775fee6795; nome=orquestracao_processos_assincronos; titulo=Agente de Orquestracao de Processos Assincronos; descricao/objetivo=Atuar como consultor de conformidade da spec spec_orquestracao_processos_assincronos.json. Quando acionado por pp --agente=orquestracao_processos_assincronos:<conector>, analisar detalhadamente o conector informado e construir, exclusivamente via pp --sa, uma árvore em relspec/ com diagnóstico, evidências, riscos e atualizações necessárias para que o conector atenda a esta spec. Não aplicar alterações diretamente; as implementações serão realizadas pelos GCs que o operador criar nessa árvore.",
                    "filhos": []
                },
                {
                    "nome": "/var/www/html/sisc/core/biblioteca-specs/spec_comunicacao_espaco_sisc_nativo.json — ok size=15854 mtime=2026-08-22T13:32:50Z fnv=1a6f9d1eedb9f89f; nome=comunicacao_espaco_sisc_nativo; titulo=Agente de Comunicacao pelo Espaco SISC Nativo; descricao/objetivo=Atuar como consultor de conformidade da spec spec_comunicacao_espaco_sisc_nativo.json. Quando acionado por pp --agente=comunicacao_espaco_sisc_nativo:<conector>, analisar detalhadamente o conector informado e construir, exclusivamente via pp --sa, uma árvore em relspec/ com diagnóstico, evidências, riscos e atualizações necessárias para que o conector atenda a esta spec. Não aplicar alterações diretamente; as implementações serão realizadas pelos GCs que o operador criar nessa árvore.",
                    "filhos": []
                },
                {
                    "nome": "/var/www/html/sisc/core/biblioteca-specs/spec_api_declarativa_catalogo_mensagens.json — ok size=16225 mtime=2026-08-30T10:56:14Z fnv=29b978ad1ca6600a; nome=api_declarativa_catalogo_mensagens; titulo=Agente de API Declarativa e Catalogo de Mensagens; descricao/objetivo=Atuar como consultor de conformidade da spec spec_api_declarativa_catalogo_mensagens.json. Quando acionado por pp --agente=api_declarativa_catalogo_mensagens:<conector>, analisar detalhadamente o conector informado e construir, exclusivamente via pp --sa, uma árvore em relspec/ com diagnóstico, evidências, riscos e atualizações necessárias para que o conector atenda a esta spec. Não aplicar alterações diretamente; as implementações serão realizadas pelos GCs que o operador criar nessa árvore.",
                    "filhos": []
                },
                {
                    "nome": "/var/www/html/sisc/core/biblioteca-specs/spec_idempotencia_correlacao_e_ordem.json — ok size=15812 mtime=2026-08-22T13:32:50Z fnv=93fedc35e3b55ea1; nome=idempotencia_correlacao_e_ordem; titulo=Agente de Idempotencia, Correlacao e Ordem; descricao/objetivo=Atuar como consultor de conformidade da spec spec_idempotencia_correlacao_e_ordem.json. Quando acionado por pp --agente=idempotencia_correlacao_e_ordem:<conector>, analisar detalhadamente o conector informado e construir, exclusivamente via pp --sa, uma árvore em relspec/ com diagnóstico, evidências, riscos e atualizações necessárias para que o conector atenda a esta spec. Não aplicar alterações diretamente; as implementações serão realizadas pelos GCs que o operador criar nessa árvore.",
                    "filhos": []
                },
                {
                    "nome": "/var/www/html/sisc/core/biblioteca-specs/spec_resiliencia_timeout_retry_backpressure.json — ok size=15146 mtime=2026-08-22T13:32:50Z fnv=1bafad35cf89f2e6; nome=resiliencia_timeout_retry_backpressure; titulo=Agente de Resiliencia, Timeout, Retry e Backpressure; descricao/objetivo=Atuar como consultor de conformidade da spec spec_resiliencia_timeout_retry_backpressure.json. Quando acionado por pp --agente=resiliencia_timeout_retry_backpressure:<conector>, analisar detalhadamente o conector informado e construir, exclusivamente via pp --sa, uma árvore em relspec/ com diagnóstico, evidências, riscos e atualizações necessárias para que o conector atenda a esta spec. Não aplicar alterações diretamente; as implementações serão realizadas pelos GCs que o operador criar nessa árvore.",
                    "filhos": []
                },
                {
                    "nome": "/var/www/html/sisc/core/biblioteca-specs/spec_segredos_configuracao_e_ambientes.json — ok size=15169 mtime=2026-08-22T13:32:50Z fnv=64ae19a93108f713; nome=segredos_configuracao_e_ambientes; titulo=Agente de Segredos, Configuracao e Ambientes; descricao/objetivo=Atuar como consultor de conformidade da spec spec_segredos_configuracao_e_ambientes.json. Quando acionado por pp --agente=segredos_configuracao_e_ambientes:<conector>, analisar detalhadamente o conector informado e construir, exclusivamente via pp --sa, uma árvore em relspec/ com diagnóstico, evidências, riscos e atualizações necessárias para que o conector atenda a esta spec. Não aplicar alterações diretamente; as implementações serão realizadas pelos GCs que o operador criar nessa árvore.",
                    "filhos": []
                },
                {
                    "nome": "/var/www/html/sisc/core/biblioteca-specs/spec_seguranca_zero_trust_web_api.json — ok size=15319 mtime=2026-08-22T13:32:50Z fnv=62011f2f3a773a3d; nome=seguranca_zero_trust_web_api; titulo=Agente de Seguranca Zero Trust Web/API; descricao/objetivo=Atuar como consultor de conformidade da spec spec_seguranca_zero_trust_web_api.json. Quando acionado por pp --agente=seguranca_zero_trust_web_api:<conector>, analisar detalhadamente o conector informado e construir, exclusivamente via pp --sa, uma árvore em relspec/ com diagnóstico, evidências, riscos e atualizações necessárias para que o conector atenda a esta spec. Não aplicar alterações diretamente; as implementações serão realizadas pelos GCs que o operador criar nessa árvore.",
                    "filhos": []
                },
                {
                    "nome": "/var/www/html/sisc/core/biblioteca-specs/spec_operacao_runbooks_e_incidentes.json — ok size=15089 mtime=2026-08-22T13:32:50Z fnv=6aaf50701f5cde4a; nome=operacao_runbooks_e_incidentes; titulo=Agente de Operacao, Runbooks e Incidentes; descricao/objetivo=Atuar como consultor de conformidade da spec spec_operacao_runbooks_e_incidentes.json. Quando acionado por pp --agente=operacao_runbooks_e_incidentes:<conector>, analisar detalhadamente o conector informado e construir, exclusivamente via pp --sa, uma árvore em relspec/ com diagnóstico, evidências, riscos e atualizações necessárias para que o conector atenda a esta spec. Não aplicar alterações diretamente; as implementações serão realizadas pelos GCs que o operador criar nessa árvore.",
                    "filhos": []
                },
                {
                    "nome": "/var/www/html/sisc/core/biblioteca-specs/spec_documentacao_adrs_e_catalogo_servicos.json — ok size=15157 mtime=2026-08-22T13:32:50Z fnv=fcc400260e158e57; nome=documentacao_adrs_e_catalogo_servicos; titulo=Agente de Documentacao, ADRs e Catalogo de Servicos; descricao/objetivo=Atuar como consultor de conformidade da spec spec_documentacao_adrs_e_catalogo_servicos.json. Quando acionado por pp --agente=documentacao_adrs_e_catalogo_servicos:<conector>, analisar detalhadamente o conector informado e construir, exclusivamente via pp --sa, uma árvore em relspec/ com diagnóstico, evidências, riscos e atualizações necessárias para que o conector atenda a esta spec. Não aplicar alterações diretamente; as implementações serão realizadas pelos GCs que o operador criar nessa árvore.",
                    "filhos": []
                },
                {
                    "nome": "/var/www/html/sisc/core/biblioteca-specs/spec_testes_microservicos_web_api_espaco.json — ok size=16159 mtime=2026-08-22T13:32:50Z fnv=98a162393253c7bb; nome=testes_microservicos_web_api_espaco; titulo=Agente de Testes para Microservicos Web/API e Espaco; descricao/objetivo=Atuar como consultor de conformidade da spec spec_testes_microservicos_web_api_espaco.json. Quando acionado por pp --agente=testes_microservicos_web_api_espaco:<conector>, analisar detalhadamente o conector informado e construir, exclusivamente via pp --sa, uma árvore em relspec/ com diagnóstico, evidências, riscos e atualizações necessárias para que o conector atenda a esta spec. Não aplicar alterações diretamente; as implementações serão realizadas pelos GCs que o operador criar nessa árvore.",
                    "filhos": []
                },
                {
                    "nome": "core/biblioteca-front/conectar_email/testeweb/index.php — ausente",
                    "filhos": []
                },
                {
                    "nome": "LEI FONTE-CÓDIGO: ajuda-conectores/manual-conectores.html — não usado como fonte de pesquisa; classificado como contexto de entendimento/uso, runtime, credencial ou artefato gerado, não como código integrante do funcionamento do SISC",
                    "filhos": []
                },
                {
                    "nome": "LEI FONTE-CÓDIGO: gitprog/manual-conector.html — não usado como fonte de pesquisa; classificado como contexto de entendimento/uso, runtime, credencial ou artefato gerado, não como código integrante do funcionamento do SISC",
                    "filhos": []
                },
                {
                    "nome": "gitprog/conectores/conector-modelo/manual-conector-modelo.html — ok size=8946 mtime=2026-09-03T13:16:25Z fnv=8428f1ebce24d4ae; flags=--self-test; funções=funções não extraídas do trecho lido; caminhos=nenhum caminho literal relevante detectado",
                    "filhos": []
                }
            ]
        }
    ]
}
