CommunityEscrita e Ediçãogithub.com

boris-timofeenko/ne-slop-text

Escreva ou corrija textos para pessoas reais, fazendo com que soem como elas mesmas, e não como a média da internet. Ideal para cartas, mensagens, currículos, bios, posts, READMEs e roteiros de vídeo.

O que é ne-slop-text?

O skill 'ne-slop-text' é um pipeline avançado para produção de texto humanizado, projetado para agentes de IA como Claude Code, Cursor ou Codex. Ele não aplica uma receita fixa de substituição de palavras — em vez disso, identifica onde os modelos padrão (como Sonnet, Opus, Haiku) tendem a cair em 'slop' (média estatística) e desloca o rascunho para longe desse ponto, usando material real da pessoa. O pipeline é composto por uma etapa filosófica (material e leitor em primeiro lugar), um loop que afasta o texto das respostas padrão usando pesos de características discursivas aprendidos com testes cegos do usuário, uma lint final e uma etapa de aprendizado contínuo. Funciona em qualquer idioma e é acionado por comandos como 'ne-slop', 'humanize', 'fix this text', 'звучит как ChatGPT' etc. A base teórica vem do artigo StoryScope (Russell et al., COLM 2026), que separa textos humanos de IA com 93% F1 apenas por características de discurso. O skill suporta modos curto (até ~120 palavras) e completo, com custo de 6 a 8 chamadas de agente e 3 a 5 minutos. Ele evita ativamente abordagens comuns que falham, como polimento para o gênero, geração única a partir de bom material, piadas construídas, perseguição de palavras raras ou texto autorreferencial.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/boris-timofeenko/ne-slop-text/tree/HEAD

Installed? Explore more Escrita e Edição skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que ne-slop-text faz?

Slop é a média: o que um modelo escreve quando preenche uma lacuna com o movimento mais provável, ou quando é solicitado a "melhorar". Ele está nas decisões (o que é dito explicitamente, quem conduz os eventos, como termina, o que é listado, o que é nomeado), não nas palavras. Trocar palavras não resolve: o StoryScope (Russell et al., COLM 2026) separa histórias de IA de histórias humanas com 93% F1 apenas com base em características de discurso, e uma reescrita superficial profissional moveu a detecção apenas de 95,5% para 93,9%. Os modelos se agrupam em uma região; as pessoas se dispersam. Portanto, este skill não aplica uma receita fixa. Ele encontra, para cada tarefa, onde os modelos padrão pousam, e move o rascunho para longe dali, com material da pessoa.

Como o pipeline foi encontrado e testado: docs/evidence.md. Os caminhos abaixo são relativos ao diretório deste skill.

Entradas

  • Uma tarefa (o que escrever, para quem, por quê) ou uma fonte (um texto a corrigir).
  • Contexto, opcional: documentos, fatos, as próprias palavras da pessoa (transcrições de voz, chats, anotações internas).

Escolha o modo

  • Curto (até ~120 palavras: respostas de chat, mensagens curtas, títulos): Etapa 1, depois Etapa 3. O loop não tem sinal neste comprimento; em um teste cego, resumos de 100 palavras escritos de cinco maneiras diferentes foram indistinguíveis.
  • Completo (qualquer coisa mais longa que vai para outras pessoas): Etapas 1, 2, 3, 4. Etapa 5 quando o texto é importante ou o usuário solicita.

Etapa 1. Filosofia, antes de escrever

  1. Material primeiro. Encontre o que só essa pessoa tem: um episódio específico; uma opinião que ela sustenta; uma força além dela que moldou os eventos (alguém empurrou, algo foi herdado, algo falhou); uma ressalva ou um limite; suas próprias palavras. Textos antigos do mesmo gênero (currículos e cartas anteriores) fornecem fatos, não a voz.
  2. Material faltante. Se o texto for importante, faça de 1 a 3 perguntas curtas; respostas em voz são as melhores, mantenha a transcrição como material. Faça perguntas abertas que não sugiram a resposta: "como realmente aconteceu", "houve um caso", "o que você acha sobre X", "o que você ainda não sabe fazer". Se não puder perguntar, use especificidades verificáveis (nomes, números, fontes) e deixe as lacunas visíveis. Nunca preencha uma lacuna com a média.
  3. O leitor e seu código. O que eles pediram literalmente? Que palavras e piadas eles usam? Responder com as próprias palavras deles é vivo quando faz um ponto ("Seu anúncio pede justiça, então não vou alegar ser o melhor: não conheci os outros candidatos"). Usar as palavras deles como rótulos ou cabeçalhos é slop.
  4. Renderizar próximo ao material. A ordem de pensamento da pessoa, suas ressalvas ("provavelmente", "no geral"), tradução literal em vez de idiomática, primeira pessoa com verbos curtos: "Eu lidero 3 engenheiros de QA e aprovo lançamentos" foi marcado como vivo; "Lidero uma equipe de 3 engenheiros de QA e sou responsável pela aprovação de lançamentos" foi marcado como slop.
  5. O gênero vive no contêiner (formato, comprimento, saudação, campos obrigatórios), não em cada frase. Listas vão onde as listas pertencem (uma seção de habilidades, uma tabela, o CV anexado); uma frase carrega um episódio ou um mecanismo.
  6. Desconfie do que vem fácil. Se uma frase chegou sem uma decisão, provavelmente é a média.

Etapa 2. O loop: para longe do padrão (modo completo)

  1. Padrões. Invoque 3 agentes novos em modelos diferentes (ex.: opus, sonnet, haiku). Dê a cada um a tarefa simples e o mesmo contexto com loop/default_prompt.md. Eles não devem ver este skill, o rascunho nem uns aos outros.
  2. Anote. Um agente novo adicional, em um modelo diferente do escritor, anota o rascunho e os padrões com loop/questionnaire.json, seguindo loop/annotator.md. Saída: features.json.
  3. Relatório. python3 loop/consensus.py loop/questionnaire.json features.json D1,D2,D3 DRAFT TEXTS_DIR > report.txt fornece P1 (o rascunho faz o que todo padrão faz e tende a ser mecânico), P2 (tende a ser mecânico por peso), Keep (tendência humana, não perder), os 4-gramas compartilhados com os padrões e quão próximo a frase de abertura está deles.
  4. Revise. Um agente novo aplica loop/reviser.md ao rascunho com o relatório e o contexto. Material supera pesos: uma frase que renderiza as próprias palavras da pessoa permanece mesmo se uma característica a sinalizar.
  5. Pare após no máximo 2 rodadas, ou quando P1 estiver vazio. O texto não deve ficar mais longo.

Custo: cerca de 6 a 8 chamadas de agente e 3 a 5 minutos. Consenso por si só não é slop: quando o contexto é rico, todo padrão também tem um episódio específico. Uma sinalização precisa de ambos: os padrões concordam e a característica tende mecânico. Alguma concordância é apenas o gênero (um README diz como instalar); informe ao revisor qual é o contêiner.

Etapa 3. Lint, por último

python3 lint/lint.py FILE --lang en (ou ru), depois leia lint/en.md ou lint/ru.md. Corrija apenas o que for sinalizado; não reestruture nesta etapa. As listas de palavras são o sinal mais fraco e o primeiro a envelhecer.

Etapa 4. Saída

Forneça ao usuário: o texto; o que mudou e por quê, em algumas linhas; perguntas em aberto e lacunas que permaneceram visíveis. Quando o contexto foi usado, ofereça um mapa "linha ← fonte". Nunca edite os arquivos originais do usuário; escreva rascunhos próximos a eles.

Etapa 5. Aprenda

  • Teste cego para textos importantes: python3 tools/blind.py out.html key.json "Título" "Subtítulo" nome=caminho=rótulo ... Vários processamentos do mesmo material, classificação sem empates, marcas de frase (slop / vivo). Compare pelo menos dois parágrafos; trechos curtos não separam.
  • Marcas se tornam pesos. Acrescente as marcas do usuário a learn/marks.jsonl com uma tag de padrão de learn/patterns.md, depois execute python3 learn/update_weights.py. Ele mostra quais padrões estão estabilizados e quais pesos do questionário discordam deles; edite loop/questionnaire.json para corresponder. Um novo padrão marcado como slop duas vezes e nunca vivo se torna uma nova característica.
  • Rejeições ensinam mais que elogios. Quando o usuário editar seu texto, faça um diff: o que eles cortaram também é uma marca.

O que não fazer (cada um foi testado)

  • Polimento em direção ao gênero ("tornar mais profissional"): o discurso de currículo e o herói solitário voltam, e os episódios são distorcidos.
  • Gerar a partir de bom material em uma única passagem: o modelo dissolve a voz na média e descarta a opinião.
  • Realizar casualidade: piadas escritas como construções ("A resposta de piada é...; a resposta real é..."), reescritas "adicione personalidade". Esta é a assinatura do humanizador que as pessoas identificam.
  • Extrair uma opinião de notas antigas em vez da pessoa, ao vivo. As notas diziam uma coisa; a pessoa disse outra.
  • Caçar palavras raras. Texto vivo é lexicalmente comum; a raridade está em suas decisões.
  • Viradas inteligentes, até mesmo as da própria pessoa ("fale com engenheiros como um engenheiro", "...e a equipe entrega tickets um para o outro").
  • Texto sobre si mesmo ("O X primeiro, já que você pediu explicitamente").

Onde outras abordagens se encaixam

  • ne-slop (o skill pai, para qualquer trabalho criativo): A Etapa 1 é sua parte específica de texto. Material real, muitas decisões explícitas pequenas, várias variantes diferentes, a pessoa escolhe, rejeições são lembradas, olhe para o resultado.
  • StoryScope: a teoria por trás da Etapa 2 e a semente dos pesos do questionário.
  • unslop: o teste de portabilidade (esta frase se encaixaria em outra pessoa ou empresa?) e suas salvaguardas contra fatos inventados pertencem às Etapas 1 e 3; suas listas de palavras alimentam o lint.
  • humanizer: sua lista de padrões alimenta o lint. Sua reescrita com "personalidade e alma" é propositalmente excluída.

Habilidades Relacionadas