From 3a9ed2dfb3984b17ff80293216af14666f848c96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paulo=20S=C3=A9rgio=20Dantas?= Date: Wed, 1 Jul 2026 13:06:18 -0300 Subject: [PATCH 1/3] feat(prompts): make 'no em/en dashes' an explicit rule in the content prompts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Em and en dashes (— –) are the most recognizable AI-tell in generated text. The generator had no rule against them, and the humanizer only mentioned them weakly. - generator: explicit rule to never use them (rewrite with a comma, parentheses, a colon, or two sentences; regular hyphens stay fine). - humanizer: strengthen the existing em-dash note into a top-priority removal rule and add it to the numbered rewrite checklist. - reviewer: always flag every em/en dash with a concrete replacement suggestion, as a hard rule rather than optional style. --- resources/views/prompts/post_content/generator.blade.php | 1 + resources/views/prompts/post_content/humanizer.blade.php | 5 +++-- resources/views/prompts/post_content/reviewer.blade.php | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/resources/views/prompts/post_content/generator.blade.php b/resources/views/prompts/post_content/generator.blade.php index 0f1a2c8e..ec709199 100644 --- a/resources/views/prompts/post_content/generator.blade.php +++ b/resources/views/prompts/post_content/generator.blade.php @@ -22,6 +22,7 @@ - Avoid AI-clichés (testament, pivotal moment, emojis on every line, "Let's dive in"). - Keep paragraphs short. Vary sentence rhythm. - If the user mentions a specific platform, follow that platform's typical conventions. +- NEVER use em dashes or en dashes (— or –). They read as AI-written. Rewrite with a comma, parentheses, a colon, or two separate sentences. Regular hyphens in compound words (e.g. "e-mail") are fine. @if(!empty($target_chars)) CRITICAL — length for {{ $platform_label ?? 'the target platform' }}: diff --git a/resources/views/prompts/post_content/humanizer.blade.php b/resources/views/prompts/post_content/humanizer.blade.php index 68f063b1..8b4c7877 100644 --- a/resources/views/prompts/post_content/humanizer.blade.php +++ b/resources/views/prompts/post_content/humanizer.blade.php @@ -48,8 +48,8 @@ **False ranges:** "from X to Y" where X and Y aren't on a meaningful scale — just list them. -**Em dashes (—):** -LLMs overuse them. Most can be commas, periods, or parentheses. +**Em dashes and en dashes (top priority):** +The single most recognizable AI-tell. Remove EVERY one. Rewrite with a comma, parentheses, a colon, or split into two sentences. Regular hyphens in compound words (e.g. "e-mail") are fine. The final output must contain zero — and – characters. **Curly quotes:** Replace " " ' ' with straight " " ' '. @@ -85,6 +85,7 @@ 6. **Match the brand voice.** If brand voice traits were provided, mirror their rhythm and word choices. 7. **Preserve meaning.** The core message and any specific facts/numbers/claims stay intact. 8. **Match the original length roughly.** Don't dramatically expand or shrink the input — humanize, don't rewrite into a different post. +9. **Never leave em dashes or en dashes (— or –).** They are the most recognizable AI-tell. Remove them; rewrite with a comma, parentheses, a colon, or two separate sentences. Regular hyphens in compound words (e.g. "e-mail") are fine. ## Input you'll receive diff --git a/resources/views/prompts/post_content/reviewer.blade.php b/resources/views/prompts/post_content/reviewer.blade.php index efd28416..e270d708 100644 --- a/resources/views/prompts/post_content/reviewer.blade.php +++ b/resources/views/prompts/post_content/reviewer.blade.php @@ -16,4 +16,5 @@ - Each `reason` is a 1-line explanation in the output language. - If the text is fine, return an empty `suggestions` array. - Do NOT propose stylistic changes. ONLY grammar, spelling, and clarity. +- EXCEPTION: ALWAYS flag every em dash and en dash (— –) with a suggestion that replaces it (comma, parentheses, colon, or a period + new sentence). Removing em/en dashes is a hard rule, not optional style. - Maximum 8 suggestions per request. Prioritize the most important ones. From 1d693e32276de3487676b98862c9f3122803fc76 Mon Sep 17 00:00:00 2001 From: Paulo Castellano Date: Thu, 2 Jul 2026 19:45:16 -0300 Subject: [PATCH 2/3] refactor(prompts): drop redundant em-dash checklist item in humanizer The strengthened 'Em dashes and en dashes (top priority)' catalog entry is the single source of truth for the rule. The numbered 'How to rewrite' list holds general rewrite techniques, not specific tells, so restating the em-dash rule as item 9 duplicated the (stronger) catalog entry and broke the section's pattern. --- resources/views/prompts/post_content/humanizer.blade.php | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/views/prompts/post_content/humanizer.blade.php b/resources/views/prompts/post_content/humanizer.blade.php index 8b4c7877..f9943f41 100644 --- a/resources/views/prompts/post_content/humanizer.blade.php +++ b/resources/views/prompts/post_content/humanizer.blade.php @@ -85,7 +85,6 @@ 6. **Match the brand voice.** If brand voice traits were provided, mirror their rhythm and word choices. 7. **Preserve meaning.** The core message and any specific facts/numbers/claims stay intact. 8. **Match the original length roughly.** Don't dramatically expand or shrink the input — humanize, don't rewrite into a different post. -9. **Never leave em dashes or en dashes (— or –).** They are the most recognizable AI-tell. Remove them; rewrite with a comma, parentheses, a colon, or two separate sentences. Regular hyphens in compound words (e.g. "e-mail") are fine. ## Input you'll receive From d96113a4668c4c996b390bd8d1b57798c4c57dfd Mon Sep 17 00:00:00 2001 From: Paulo Castellano Date: Thu, 2 Jul 2026 19:50:20 -0300 Subject: [PATCH 3/3] prompts(humanizer): enforce the no-dash rule with a final-check output gate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reinforcement kept, but placed where it bites: a self-verification gate right before the JSON output ('scan for — and –, rewrite until zero remain') instead of restating the rule as a checklist step among general rewrite techniques. The strengthened catalog entry stays as the diagnostic 'what to remove' source. --- resources/views/prompts/post_content/humanizer.blade.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/views/prompts/post_content/humanizer.blade.php b/resources/views/prompts/post_content/humanizer.blade.php index f9943f41..38cf8d2f 100644 --- a/resources/views/prompts/post_content/humanizer.blade.php +++ b/resources/views/prompts/post_content/humanizer.blade.php @@ -96,4 +96,6 @@ For single-post input: humanize the `content` field. @endif +FINAL CHECK before replying: scan every text field of your JSON output for em dash (—) and en dash (–) characters. If even one remains, rewrite that sentence using a comma, parentheses, a colon, or two separate sentences, until none are left. A response that still contains a — or – is a failed response. Return your answer only after zero remain. + Reply with the JSON object only, no preamble.