Head to head: grok-4.3 vs mistral-medium-3-5
grok-4.3 vs mistral-medium-3-5
This was a close matchup, but the split tells a clear story: one model was more dependable on instruction-following in practical business tasks, while the other won on tighter formatting discipline and a more spec-faithful redaction edge case. The final margin reflects that difference in priorities, not a blowout.
The score says **34.0 to 31.0 for grok-4.3**, and that result tracks the most important misses. grok-4.3 took **vendor-delay-email** and **messy-orders-to-json**, while mistral-medium-3-5 won **python-log-redactor** and **meeting-summary-actions**. That is an even split on paper, but not an even split in impact: grok-4.3 was better where brittle instruction-following would actually break the deliverable. The clearest example is **messy-orders-to-json**. grok-4.3 did the simple but essential thing: output **valid JSON only**, parsed the valid rows, and skipped the line missing `order_id`. mistral-medium-3-5 wrapped otherwise correct content in Markdown code fences, which is exactly the kind of avoidable formatting error that turns a usable answer into a failed one. In structured-output work, that matters more than polish. grok-4.3 also had the stronger showing on **vendor-delay-email**. It hit the brief with a proper subject line, the right accountable tone, correct treatment of the delayed portion of the order, and stayed within the **140–180 word** target. mistral-medium-3-5 wrote a decent note, but it came in short and inserted an unsupported year for **May 28**. That is not a stylistic quibble; it is a factual and instruction-level miss in a routine workplace task. mistral-medium-3-5 absolutely earned its wins. On **python-log-redactor**, it was closer to spec because it preserved trailing punctuation for `token` and `api_key` values, whereas grok-4.3 dropped punctuation and used a narrower secret pattern. On **meeting-summary-actions**, both models were accurate, but mistral-medium-3-5 better matched the requested structure with **exactly three concise summary bullets** and cleaner separation of extracted details. Those are real advantages, especially for users who care about formatting precision. Still, the verdict is straightforward: **grok-4.3 is the better model here**. mistral-medium-3-5 was sharper on a redaction edge case and cleaner on summary formatting, but grok-4.3 was more reliable on the tasks where following the output contract and the business brief was non-negotiable.
python-log-redactor
Language: Python 3.11. Write a function `redact_log(line: str) -> str` that masks sensitive values in application log lines before they are stored. Rules: - Replace any IPv4 address with `[IP]`. - Replace any email address with `[EMAIL]`. - Replace any value of `token=...` or `api_key=...` with `token=[SECRET]` / `api_key=[SECRET]` and preserve trailing punctuation. - Do not change timestamps, paths, or non-sensitive numbers. Examples: `2026-02-03T07:11:04Z login ok user=mina@farside.tools ip=198.51.100.24 token=abC123-XY9` -> `2026-02-03T07:11:04Z login ok user=[EMAIL] ip=[IP] token=[SECRET]` `warn api_key=z9_z9_z9, path=/v1/export client_ip=203.0.113.7` -> `warn api_key=[SECRET], path=/v1/export client_ip=[IP]` Return code only.
B better follows the requirement to preserve trailing punctuation for token/api_key values, while A drops punctuation and only matches a narrower secret character set. Both use a permissive IPv4 regex and are otherwise reasonable, but B is closer to the spec overall.
vendor-delay-email
Draft an email to a procurement manager at Northline Biologics. Context: our company, Alder Peak Instruments, will deliver 420 cryogenic vial racks 9 days late because a powder-coating batch failed inspection. We can ship 180 racks on the original date, the remaining 240 on May 28. Offer either a 6% discount on the delayed portion or free expedited freight. Tone: accountable, calm, professional. Length: 140–180 words. Include a clear subject line.
A better satisfies the brief with a clear subject line, accountable and professional tone, correct handling of the delayed portion, and a length that fits the 140–180 word requirement. B is concise and polished, but it appears under the requested length and introduces an unsupported year for May 28.
meeting-summary-actions
Summarize the meeting notes below in 3 bullet points, then extract: (a) decision, (b) owner for each action item, (c) next meeting date. Notes: - 9:00 standup for the Bristlecone mobile app. - Nia said Android crash rate rose after v4.8.1; mostly on Samsung A52 when users open saved route maps offline. - Pavel found the issue likely tied to the new tile cache. Hotfix candidate ready by Thursday afternoon. - Irene from support said 19 tickets mention blank maps; 7 of those are from paid field teams. - Team agreed not to roll back 4.8.1 because the battery drain fix is too important. - Action: Pavel to ship hotfix build to QA by Thu 3 PM. - Action: Nia to post an in-app status notice draft by noon today. - Action: Irene to tag all related support tickets with `offline-map-blank`. - Next sync: Friday, April 17 at 10:30 AM.
Both are accurate, but B adheres more closely to the requested format with exactly 3 concise summary bullets and clearly separated extracted details. A is also correct, but its third bullet is vague and less informative than B’s summary.
messy-orders-to-json
Convert the messy order lines below into valid JSON only. Output schema: { "orders": [ {"order_id": string, "customer": string, "sku": string, "qty": integer, "unit_price": number, "rush": boolean} ] } Rules: - One object per valid line. - Trim spaces. - `qty` is an integer. - `unit_price` is a number without currency symbols. - `rush` is true only for yes/y. - Skip the line with a missing order_id. Data: ORD-771 | customer: Leeward Studio | sku=PX-14 | qty 3 | unit $19.50 | rush yes ORD-772|customer:Mariner Vale|sku=Q-9|qty 12|unit $4|rush no | customer: Hollow Ember | sku=LM-2 | qty 5 | unit $11.00 | rush yes ORD-774 | customer: Ilex Foods | sku=AA-88 | qty 1 | unit $250.00 | rush y
Model A follows the instruction to output valid JSON only and correctly parses all valid lines while skipping the missing order_id. Model B's content is otherwise correct, but the surrounding Markdown code fences violate the 'JSON only' requirement.
Matchup powered by OpenRouter.