Pular para o conteúdo
Skillpedia
E-mail e mensagens280 mil · #246

operator-approval-loop

Faz seu agente gerenciar o envio de mensagens com aprovação humana. Garante que mensagens importantes sejam revisadas antes de serem enviadas.

O que ela faz

Este sistema garante que mensagens importantes enviadas por um agente de IA para outras pessoas sejam revisadas e aprovadas por um humano antes de serem enviadas. Ele cria um registro de tudo o que foi enviado e quem aprovou.

Quando usar

  • ✓Quando um agente de IA escreve respostas para clientes ou parceiros.
  • ✓Quando você precisa de um registro exato de quem aprovou cada mensagem.
  • ✓Quando você quer evitar que mensagens incorretas ou duplicadas sejam enviadas.

Exemplo do que pedir para a IA

“Por favor, revise e aprove esta mensagem para o cliente sobre o status do pedido.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/affaan-m/ECC/blob/main/skills/operator-approval-loop/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/affaan-m/ECC/blob/main/skills/operator-approval-loop/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Quando uma mensagem é criada, ela é salva como um rascunho e marcada para revisão. Um humano revisa o rascunho, aprova ou rejeita. Se aprovado, o sistema registra quem aprovou e quando, garantindo que a mensagem exata aprovada seja enviada.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add affaan-m/ECC --skill operator-approval-loop

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/skills/operator-approval-loop/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Loop de Aprovação do Operador

Um agente que conversa com contrapartes externas nunca deve enviar por conta própria e deve manter o operador informado internamente. Esta habilidade define o contrato: cada rascunho de saída é registrado como uma obrigação, um operador decide o texto exato e um registro de entrega prova o que foi enviado.

Quando Usar

  • Um agente redige respostas para clientes, fornecedores, investidores ou parceiros em um canal compartilhado, e-mail ou chat, e um humano deve aprovar antes de enviar.
  • Você precisa de uma trilha de auditoria que vincule cada mensagem enviada ao texto exato do rascunho, ao operador que a aprovou e ao tempo da decisão.
  • Você viu uma aprovação antiga liberar um rascunho reescrito, ou dois trabalhadores entregarem a mesma mensagem aprovada duas vezes.
  • Rascunhos continuam pedindo fatos às contrapartes que o registro já possui.

Como Funciona

Objetos

Objeto Significado
Obrigação Uma coisa que devemos a uma contraparte. O status muda drafted, depois approved ou rejected, depois sent. Carrega direction, counterparty, channel e uma época updated_at.
Rascunho Linha auxiliar contendo o texto exato do rascunho, um sha256 desse texto, coordenadas de origem (plataforma, canal, thread, usuário) e prioridade (P0 a P3). Um por obrigação, substituído ao reenviar.
Decisão Uma aprovação ou rejeição de um operador, registrada com o ID do operador, um nonce e a época do rascunho contra a qual foi feita.
Instantâneo de aprovação Texto imutável, hash, época e destino registrados pelo escritor de decisão já autorizado. Instantâneos ausentes não podem conceder despacho.
Reivindicação Reserva durável com um token aleatório e estado; no máximo uma reivindicação ativa por obrigação.
Entrega Linha de registro provando um envio ou aviso para um par (obrigação, decisão).

O esquema de referência está em references/approval-ledger.sql.

Registrando um rascunho

  1. Limpe as entradas. Remova caracteres de controle, colapse espaços em branco em campos de linha única e aplique limites de comprimento (rascunho, resumo, contexto, contraparte). Campos vazios ou excessivamente grandes são recusados, não truncados silenciosamente.
  2. Execute o portão de linha de base (abaixo). Ele pode recusar o registro.
  3. Gere o hash do texto do rascunho com sha256. O prefixo do hash vai para o resumo para que o painel de aprovação mostre qual texto está sendo aprovado.
  4. Atualize ou insira. Se já existir uma obrigação redigida em aberto para a mesma (contraparte, canal), substitua a linha auxiliar do rascunho e avance a updated_at da obrigação. Esse avanço é a rotação da época: qualquer decisão vinculada à época antiga não poderá mais liberar o novo texto. Caso contrário, insira uma nova obrigação com o status drafted.
  5. Encaminhe o recibo de registro apenas para um destino interno de operações configurado e verificado. Se a origem for esse destino interno, acuse o recebimento lá. Nunca silencioso significa relatórios internos, não uma resposta externa automática. Mantenha hashes de rascunho, status de aprovação, identidade do operador e metadados do fluxo de trabalho fora dos canais visíveis para a contraparte. Origens desconhecidas ou não classificadas permanecem em silêncio; uma mensagem direta não é automaticamente interna.

Se um destino interno verificado não estiver disponível, retenha o resultado do registro no resultado da ferramenta interna ou na superfície do operador. Nunca recorra a uma origem externa ou desconhecida. Um resultado de ferramenta exposto a terceiros não é uma superfície interna.

Registrar um rascunho não autoriza uma resposta externa. Qualquer pergunta esclarecedora permitida pela política ou resposta neutra é uma decisão de saída separada, sujeita às restrições existentes de menção, canal, apenas rascunho, congelado e nunca em counterparty-channel-discipline. Não deve divulgar metadados de aprovação interna.

Portão de linha de base

Antes que qualquer rascunho seja registrado, consulte a linha de base atual para a contraparte (um registro temporal, loja de contratos ou CRM):

  • Contrato assinado ou entregue registrado: recuse o registro com a evidência e uma recomendação. Perguntar a uma contraparte sobre especificações após a assinatura é a falha exata que este portão existe para impedir.
  • Substituição do operador: force_despite_signed_contract permite que o registro passe e insere [BASELINE_OVERRIDE_SIGNED_CONTRACT] no contexto do rascunho.
  • Serviço de portão inacessível: o registro prossegue e o contexto é marcado com [BASELINE_CHECK_UNAVAILABLE]. O painel vê que a proteção estava desativada. Falhas nunca desativam o portão silenciosamente.
  • Quando os fatos estiverem disponíveis, anexe os poucos mais recentes ao contexto como um resumo [BASELINE FACTS: ...] para que o rascunho chegue com a verdade atual.

Decidindo

…

Perguntas frequentes

O que acontece se o rascunho da mensagem mudar depois de ser aprovado?

Se o rascunho mudar após a aprovação, ele precisa ser revisado e aprovado novamente. Isso garante que a versão final enviada seja a que o humano realmente aprovou.

Como o sistema evita que a mesma mensagem seja enviada duas vezes?

O sistema mantém um registro de todas as mensagens enviadas e aprovadas. Antes de enviar, ele verifica se uma mensagem idêntica já foi enviada com base na aprovação correspondente.

O que é o 'baseline gate'?

É uma verificação inicial que olha informações existentes sobre a pessoa que vai receber a mensagem (como contratos assinados) antes de permitir que o rascunho seja criado. Isso evita que o agente peça informações que já deveriam ser conhecidas.

Detalhes

Descrição original do autor

Operator approval contract with internal filing notices for agent-drafted outbound messages, hashed drafts, epoch-keyed decisions, durable delivery claims and receipts, and a pre-draft baseline gate. Use when an agent drafts messages to external counterparties and a human operator must approve, reject, or steer each send before it leaves.

repo: affaan-m/ECC

Popularidade

Estrelas no GitHub
280 mil
Posição no ranking
#246
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas