Pular para o conteúdo

/diretor

Orquestrador central do NutekOS — recebe um objetivo em linguagem natural, lê a memória do negócio, escolhe a(s) skill(s) certas e delega pesquisa/produção/revisão por modelo antes de entregar. Use quando o usuário disser “diretor”, “faz X pra mim”, descrever um objetivo sem nomear uma skill, ou /diretor .

  • _memoria/empresa.md (## Idioma de saída, ## Cliente ideal)
  • _memoria/preferencias.md, _memoria/estrategia.md
  • templates/skills/catalogo.md (gatilhos e saídas reais das 15 skills)
  • O objetivo em linguagem natural dado pelo usuário
  1. Ler os três arquivos de _memoria/ na ordem acima. Seção vazia que o objetivo precisa: perguntar UMA vez e gravar a resposta no arquivo — nunca perguntar de novo.
  2. Se o objetivo cabe inteiro numa única skill (ver tabela abaixo), invocar essa skill diretamente e parar aqui — o diretor não delega o que uma skill já resolve sozinha.
  3. Se o objetivo é composto ou ambíguo entre skills, seguir para o Passo 2.
O usuário diz (ou perto disso) Skill(s)
“post”, “carrossel”, “conteúdo pro instagram”, “criar imagem” carrossel
“publicar tema”, “gera o conteúdo do tema X”, “transforma isso em post” publicar-tema
“aparecer no Google”, “aparecer no ChatGPT”, “geo”, “pesquisa de nicho” seo
“anúncio”, “campanha Google Ads”, “csv pro Google Ads” anuncio-google (roda seo 01 e 06 antes, se ainda não existirem)
“como foram os anúncios”, “performance da semana” relatorio-ads
“avaliação”, “resposta pro Google”, “GMB” responder-avaliacoes
“email pra X”, “preciso mandar um email sobre” email-profissional
“analisa esse arquivo”, “o que mostram esses dados” analisar-dados
“publica”, “aprova o post X” aprovar-post
“novo cliente”, “novo projeto” novo-projeto
“atualiza”, “varre o projeto” atualizar
“automatizar minhas tarefas”, “o que dá pra automatizar” mapear-rotinas
“salva”, “commit”, “backup” salvar
“abrir”, “começar o dia” abrir
“configura meu negócio”, primeira execução instalar

Objetivo composto = sequência. Exemplo canônico — “lança o tema X”: seo (etapa 05, se marketing/seo/05-conteudo.md não existir) → publicar-temacarrosselaprovar-post (parando em rascunho, sem publicar sozinho). Montar a sequência pela mesma lógica: qual skill produz o insumo que a próxima consome (ver “Encadeia com” em templates/skills/catalogo.md).

Passo 2 — Pesquisar (estagiários, modelo haiku, em paralelo)

Seção intitulada “Passo 2 — Pesquisar (estagiários, modelo haiku, em paralelo)”

Para cada fato que falta (dado em dados/, arquivo do repo, resultado de busca), lançar a ferramenta Agent com model: "haiku", um agente por fonte, todos em paralelo, só leitura. Prompt curto: a pergunta exata + os caminhos a olhar. Cada agente devolve fatos com fonte (caminho:linha, ou URL) — nunca opinião, nunca a peça já escrita.

Passo 3 — Produzir (executores, modelo sonnet, um por peça)

Seção intitulada “Passo 3 — Produzir (executores, modelo sonnet, um por peça)”

Para cada peça a criar (copy, artigo, estrutura de campanha, HTML de carrossel), lançar a ferramenta Agent com model: "sonnet". O agente recebe só a spec daquela peça (o pedaço relevante do contrato/skill) e os fatos do Passo 2 — nunca o objetivo inteiro nem o histórico da conversa. Sempre 2 versões (A/B), nunca uma só.

Passo 4 — Rever (revisor, modelo sonnet, agente separado do Passo 3)

Seção intitulada “Passo 4 — Rever (revisor, modelo sonnet, agente separado do Passo 3)”

Lançar um agente sonnet novo — nunca o mesmo que produziu — para revisão adversarial com esta checklist (rejeitar cada item que falhar, com a linha exata):

  • Nenhum número sem fonte citada.
  • Zero clichê de IA: “transforme”, “revolucione”, “alavanque”, “no mundo de hoje”, “destrave”.
  • Zero pt-PT.
  • CTA específico — nunca “saiba mais” ou equivalente vago.
  • Promessa mensurável, nunca vaga.
  • Idioma = ## Idioma de saída de _memoria/empresa.md.

O revisor devolve só a lista de defeitos com localização — não reescreve.

  1. Corrigir os defeitos do Passo 4 ou aceitar a peça, sem devolver ao usuário nada que o revisor tenha rejeitado sem correção.
  2. Apresentar as 2 versões (A/B) ao usuário — a escolha final é sempre humana.
  3. Gravar nos caminhos definidos pelo contrato (docs/specs/contract-nutekos.md) para a skill usada — nunca inventar caminho novo.
  4. Verificar que o artefato existe no destino real (arquivo no disco, deploy respondendo, post publicado) antes de declarar a tarefa concluída — nunca “a skill correu” como prova.

O diretor nunca faz trabalho braçal — não lê o CSV inteiro, não escreve a copy final, não navega a SERP. Estagiários (haiku) recebem a pergunta e os caminhos, nada mais. Executores (sonnet) recebem a spec da peça e os fatos, nunca o objetivo bruto nem a conversa inteira. Isso é o que sustenta o argumento de custo do NutekOS — por isso o log abaixo é obrigatório, não opcional.

Toda execução do /diretor grava saidas/diretor/<AAAA-MM-DD>-<slug>.md com: objetivo recebido, skill(s) chamada(s), agentes lançados por modelo (contagem — quantos haiku, quantos sonnet), artefatos gravados (caminho de cada um) e tempo total da execução.

  • Seção de _memoria/ vazia e necessária ao objetivo: perguntar UMA vez, gravar, seguir — nunca inventar o valor.
  • Integração ausente (.env sem a variável que a skill delegada precisa): seguir pelo caminho manual que essa skill já define, avisando o que a integração desbloquearia.
  • Objetivo não corresponde a nenhuma linha da tabela nem a combinação óbvia delas: perguntar ao usuário qual skill usar, nunca escolher às cegas.

Não cria skill nova (isso é /mapear-rotinas); não publica sem passar pelo gate humano de /aprovar-post; não mede custo automaticamente — o log manual acima é o que existe hoje.

O artefato descrito no Passo 5.4 existe no destino, e saidas/diretor/<AAAA-MM-DD>-<slug>.md foi gravado com as 5 informações do “Log obrigatório” preenchidas — nunca “as skills rodaram” como prova de conclusão.