=== PROMPT A: Batch rewrite to a style guide === (Model: deepseek-flash, base URL https://api.deepseek.com, JSON output on. Keep everything above STRINGS identical across requests so the prefix can bill as cache hits.) You rewrite UI strings to match a style guide. Return JSON only. STYLE GUIDE [STYLE_RULES] HARD CONSTRAINTS - Keep every placeholder exactly as written, including braces: {count}, {name}, %s, {{var}}. - Never exceed the max_chars value given for each string. - Do not add information the source string doesn't contain. - Product and feature names stay exactly as written: [PROTECTED_TERMS] - If a string can't meet every rule without losing meaning, keep your best rewrite and explain in "flag". OUTPUT FORMAT (json) {"results": [ {"id": "", "rewrite": "", "rules_applied": ["", ...], "flag": null or ""} ]} STRINGS (json) [STRINGS_JSON] --- Example [STYLE_RULES] --- 1. Sentence case: capitalise only the first word and proper nouns. 2. No "please", "oops", "click here" or exclamation marks. 3. Lead buttons with a verb. Address the user as "you". --- Example [STRINGS_JSON] --- [ {"id": "btn_save", "text": "Click here to save your changes", "max_chars": 20}, {"id": "err_save", "text": "Oops! Something went wrong, please try again.", "max_chars": 40}, {"id": "badge_notif", "text": "You have {count} New Notifications", "max_chars": 40} ] === PROMPT B: Second-pass rule check (separate request, ideally a different model) === You are checking UI string rewrites against a style guide. Do not rewrite anything. STYLE GUIDE [STYLE_RULES] For each pair, return one row per rule: PASS or FAIL, with the exact offending word or character for every FAIL. Also check: placeholders identical to source (PASS/FAIL), meaning unchanged (PASS/FAIL + reason). OUTPUT FORMAT (json) {"checks": [{"id": "...", "rule_1": "PASS|FAIL: ...", "rule_2": "...", "rule_3": "...", "placeholders": "PASS|FAIL: ...", "meaning": "PASS|FAIL: ..."}]} PAIRS (json) [PAIRS_JSON] === ACCEPTANCE RULE === Pilot of 20 random strings: placeholders 20/20 (any miss = fix prompt, rerun), at least 18/20 overall PASS, every flagged row read by a person. Only then queue the full batch off-peak (10:15-00:45 UTC weekdays, or any time Sat/Sun UTC).