diff --git a/orac/ai.py b/orac/ai.py index ee9459b..07a3762 100644 --- a/orac/ai.py +++ b/orac/ai.py @@ -50,10 +50,20 @@ def _shorten_with_claude(text: str, max_chars: int) -> str: model="claude-sonnet-4-6", max_tokens=256, timeout=CLAUDE_TIMEOUT_S, + system=( + "You rewrite a message to fit within a strict character budget. " + "Output ONLY the rewritten message — no preamble, no quotes, no " + "explanation, no commentary, no labels, no character count. " + "Preserve the original meaning, tone, and voice. Plain text only." + ), messages=[ { "role": "user", - "content": f"Shorten this to {max_chars} characters: {text}", + "content": ( + f"Rewrite the following message so it is at most " + f"{max_chars} characters. Reply with the rewritten " + f"message only.\n\n{text}" + ), } ], )