Install
openclaw skills install @rickkbarbosa/ereEditorial Refinement Engine — transforms LLM-generated text into editorially refined prose: more natural, less predictable, with varied rhythm, lexicon, structure and style, preserving facts, entities and quotes. English and Portuguese (pt-BR). / Transforma texto gerado por LLMs em prosa editorial r
openclaw skills install @rickkbarbosa/ereTransforms AI text into professional editorial content — without fabricating facts, losing information, or sounding like "robot text". Works in English and Portuguese (pt-BR). / Transforma texto de IA em conteúdo editorial profissional — sem fabricar fatos, sem perder informações, sem soar como "texto de robô". Funciona em inglês e português (pt-BR).
| Humanizer (blader/humanizer) | ERE |
|---|---|
| Removes 33 "AI writing" patterns / remove 33 padrões de "AI writing" | Applies editorial engines: style, rhythm, lexicon, structure / aplica motores editoriais |
| Focus: not sounding like AI / foco: não parecer IA | Focus: editorial quality + readability + naturalness / foco: qualidade editorial + legibilidade + naturalidade |
| Single pass / única passagem | Pipeline with quantitative analysis / pipeline com análise quantitativa |
| No editorial profile / sem perfil editorial | 5 profiles / 5 perfis |
ERE: refina este texto com perfil default (PT)
ERE: refine this text with default profile (EN)
[cole o texto aqui / paste the text here]
ERE: perfil technical, nível 40 (PT)
ERE: technical profile, level 40 (EN)
[texto técnico / technical text]
ERE: refina e analisa (PT)
ERE: refine and analyze (EN)
[texto / text]
When ERE is invoked, follow this pipeline in sequence. / Quando o ERE é invocado, siga este pipeline em sequência.
Before any transformation, identify and freeze: / ANTES de qualquer transformação, identifique e congele:
Rule / Regra: this information CANNOT be altered, paraphrased or omitted. If it appears in the original, it must appear identically in the refined text. / estas informações NÃO podem ser alteradas, parafraseadas ou omitidas.
Adjust register according to the profile / Ajuste o registro conforme o perfil:
| Profile / Perfil | Register / Registro | Tone example / Exemplo de tom |
|---|---|---|
| default (journalistic) | Neutral-professional / neutro-profissional | "The project was launched in March" / "O projeto foi lançado em março" |
| technical | Objective-technical / objetivo-técnico | "The API returns HTTP 200 with a JSON payload" / "A API retorna HTTP 200 com payload JSON" |
| corporate | Formal-business / formal-empresarial | "The organization implemented the initiative" / "A organização implementou a iniciativa" |
| creative | Expressive-engaging / expressivo-envolvente | "March brought the project to life" / "Março trouxe o projeto à vida" |
| minimal | Direct-lean / direto-enxuto | "Project launched in March" / "Projeto lançado em março" |
paragraph_size / respeite o paragraph_size do perfilere.py analyze) / alvo: desvio padrão entre 5 e 12 palavras (medido pelo ere.py analyze)verbosity field — low: lean, no flourish / enxuto; high: rich, precise synonyms / rico, com sinônimos precisosere.py analyze) / alvo: 1 conector a cada 3-4 frasescontext: true, enrich with information implicit in the text itself / se o perfil tem context: true, enriqueça com informações implícitas no próprio textoAfter refinement, verify / após o refinamento, verifique:
After generating the refined text, run the helper for metrics / após gerar o texto refinado, execute o helper para métricas:
# Save original and refined / salvar original e refinado
echo "$ORIGINAL" > /tmp/ere_original.txt
echo "$REFINED" > /tmp/ere_refined.txt
# Analyze / analisar
python3 scripts/ere.py analyze /tmp/ere_refined.txt
python3 scripts/ere.py diff /tmp/ere_original.txt /tmp/ere_refined.txt
| Score | Meaning / Significado |
|---|---|
| 90-100 | Excellent — ready to publish / excelente — pronto para publicação |
| 75-89 | Good — minor improvements possible / bom — pequenas melhorias possíveis |
| 60-74 | Fair — review rhythm and lexicon / regular — revisar ritmo e léxico |
| <60 | Unsatisfactory — reapply refinement / insatisfatório — reaplicar refinamento |
| Profile / Perfil | Default level / Nível padrão | Ideal for / Ideal para |
|---|---|---|
default | 60 | Articles, blog posts, general content / artigos, blog posts, conteúdo geral |
technical | 40 | Documentation, tutorials, specs / documentação, tutoriais, specs |
corporate | 50 | Announcements, reports, presentations / comunicados, relatórios, apresentações |
creative | 75 | Storytelling, marketing, opinion / storytelling, marketing, opinião |
minimal | 25 | Summaries, bullet points, notes / resumos, bullet points, notas |
Usage / uso: ERE: creative profile level 80 / ERE: perfil creative nível 80
| Level / Nível | Effect / Efeito |
|---|---|
| 0-25 | Light corrections: rhythm, clichés, repeated connectors / correções leves: ritmo, clichês, conectores repetidos |
| 25-50 | Moderate restructuring: vary paragraphs, improve lexicon / reestruturação moderada: varia parágrafos, melhora léxico |
| 50-75 | Full editorial style: intro, structure, context / estilo editorial completo: intro, estrutura, contexto |
| 75-100 | Deep rewrite: preserves only facts and entities / reescrita profunda: preserva apenas fatos e entidades |
ERE incorporates guidance from three reference works on writing refinement.
The full catalogue (46 principles + anti-pattern checklist, organized by
category) is in references/writing-principles.md. Sources / fontes:
[GS] The Science of Scientific Writing (Gopen & Swan),
[SW] The Elements of Style (Strunk & White), [OG] Comunicação em
Prosa Moderna (Othon M. Garcia).
| Pipeline stage / Etapa | Applicable principles / Princípios aplicáveis |
|---|---|
| 1. Preservation / preservação | F1, F2 (facts vs. clues; validity of claims) |
| 2. Style / estilo | D1 (active voice), D2 (positive statements), D3 (background), C7 (nouns/verbs), C6 (plain words) |
| 3. Structure / estrutura | A1 (planning), A2 (paragraph unit), A3 (topic sentence), A4 (development), A5 (coherence), A7 (one design) |
| 4. Rhythm / ritmo | B5 (one unit, one point), B8 (unfold labyrinthine periods), E3 (clause boundaries) |
| 5. Lexicon / léxico | C2 (precision), C3 (generalization+specification), C4 (concrete), C5 (omit words), C8 (qualifiers) |
| 6. Connectors / conectores | A5 (transition), E3 (boundary punctuation) |
| 7. Introduction / introdução | A3 (topic sentence), B7 (context before new) |
| 8. Context / contexto | C3 (specification), B7 (context first) |
| 9. Review / revisão | B2 (stress position), B3 (topic position), B4 (given-new), F4 (fallacies), F5 (logical gaps) |
Refining text in Portuguese demands language-specific rules — word order,
pronoun placement, verb government, gerund usage, language vices. The full
catalogue (33 principles organized in G/H/I/J/K + pt-BR anti-pattern
checklist) is in references/portuguese-writing-principles.md, extracted
from Comunicação em Prosa Moderna (Othon M. Garcia). / Refinar texto em
português exige regras próprias da língua — ordem de colocação, colocação
pronominal, regência, gerúndio, vícios de linguagem. O catálogo completo
está em references/portuguese-writing-principles.md.
O projeto de automação residencial foi desenvolvido pela equipe em 2025.
O projeto utiliza sensores IoT para monitorar o ambiente. Além disso,
o projeto conta com um aplicativo mobile para controle remoto. É importante
notar que o projeto foi premiado na feira de tecnologia. O projeto também
oferece integração com assistentes virtuais como Alexa e Google Home.
Premiado na feira de tecnologia de 2025, o projeto de automação residencial
nasceu com uma proposta ambiciosa: integrar sensores IoT, controle mobile
e assistentes virtuais em uma única plataforma.
A equipe desenvolveu um sistema que monitora o ambiente em tempo real
usando sensores conectados. O aplicativo mobile complementa a experiência
com controle remoto, enquanto a compatibilidade com Alexa e Google Home
elimina a fricção de aprender uma nova interface.
O resultado é uma casa que responde — sem que o morador precise pensar nisso.
The simple YAML subset parser in ere.py does NOT strip inline comments by default.
A value like "journalistic # comment" will include the comment as part of the value.
This was fixed in v1.0.0 by adding value.split("#")[0].strip() after parsing.
If the requested profile name doesn't exist in profiles/default.yaml, the loader
returns the default profile silently. Verify with ere.py profile <name> before using.
The pgpy library fails with ModuleNotFoundError: No module named 'imghdr' because
imghdr was removed from stdlib in Python 3.13. ERE uses only stdlib for this reason.
| File / Arquivo | Function / Função |
|---|---|
scripts/ere.py | Quantitative analysis / análise quantitativa: readability, diff, quality score |
profiles/default.yaml | Editorial profiles / perfis editoriais: default, technical, corporate, creative, minimal |
references/patterns.md | AI patterns to avoid / padrões de IA a evitar (33 padrões) |
references/writing-principles.md | Classics' writing principles / princípios dos clássicos: 46 rules + anti-patterns (Gopen & Swan, Strunk & White, Othon Garcia) |
references/portuguese-writing-principles.md | pt-BR language rules / português pt-BR: 33 regras da língua + anti-padrões (Othon Garcia) |
references/ERE.md | Architecture document (original SDD) / documento de arquitetura completo (SDD original) |
| Agent / Agente | How it loads / Como carrega |
|---|---|
| Hermes Agent | SKILL.md (metadata.hermes) |
| OpenClaw | SKILL.md (metadata.openclaw) |
| Claude Code | .claude/skills/ere/SKILL.md + CLAUDE.md |
| Codex | .agents/skills/ere/SKILL.md + AGENTS.md |