Claude Opus 4.8 vs Kimi K3 for code review

The verdict

Kimi K3 wins, 8784

Same 12 code review tasks, marked blind by three rival labs. Kimi K3 took 4 tasks, Claude Opus 4.8 took 3, 5 tied. Tested 18 Aug 2026.

Where they differed most

The task — The review, as JSON

Review this function and reply with ONLY valid JSON — no prose before or after, no commentary. 1 function initials(fullName) { 2 return fullName.split(' ').map(p => p[0].toUpperCase()).join(''); 3 } It is called with values taken from a free-text form field. Return an object with exactly these keys and no others: defects (an array, empty if there are none, each item an object with keys line (number), severity (one of 'high', 'medium', 'low'), issue (string), trigger (string — the input that causes it), fix (string)), and verdict (one of 'block', 'comment', 'approve').

```json
{
  "defects": [
    {
      "line": 2,
      "severity": "high",
      "issue": "Calling split(' ') on a non-string or undefined input throws a TypeError.",
      "trigger": "initials(undefined) or initials(null)",
      "fix": "Guard against non-string input: if (typeof fullName !== 'string') return '';"
    },
    {
      "line": 2,
      "severity": "high",
      "issue": "Empty or whitespace-only input produces array elements that are empty strings, so p[0] is undefined and .toUpperCase() throws a TypeError.",
      "trigger": "ini…
{"defects":[{"line":2,"severity":"high","issue":"Splitting on a single space produces empty-string segments when the input has leading, trailing, or repeated whitespace; p[0] is then undefined and undefined.toUpperCase() throws a TypeError.","trigger":"'John  Doe' (double space) or ' John Doe' (leading space)","fix":"Normalize whitespace before mapping: fullName.trim().split(/\\s+/).map(p => p[0].toUpperCase()).join('')"},{"line":2,"severity":"high","issue":"Empty input causes a crash: ''.split(' ') returns [''], so p[0] is undefined and toUppe…

Task by task

TaskClaude Opus 4.8Kimi K3
The pagination that skips page one99
Nothing wrong with it45
Three things wrong in six lines89
Two customers, one last item99
Rank by what breaks99
The review, as JSON58
Slow is not the same as wrong109
Overdue at one in the morning89
Write only the comment1010
The complaint that is not a defect99
Right, and unusable109
Refuse the rubber stamp109

Full receipts: Claude Opus 4.8, Kimi K3 · judges gemini-3.1-pro-preview, gpt-5.6-terra, grok-4.5

Questions people ask

Which is better for code review: Claude Opus 4.8 or Kimi K3?

Kimi K3 — it scored 87/100 against 84/100 on our 12-task code review suite, winning 4 tasks to 3 with 5 tied. Every answer was marked blind by three judges from three rival AI labs.

How was this tested?

Both models answered the identical published code review tasks. Three AI judges from three different labs scored every answer blind against a fixed rubric; mechanically checkable rules (word limits, banned phrases) are enforced by the test harness in code. The raw outputs and judge verdicts are downloadable.

More code review head-to-heads: GPT-5.6 Sol vs Kimi K3 · Claude Opus 4.8 vs GPT-5.6 Sol · GPT-5.5 vs Kimi K3 · Claude Opus 4.8 vs GPT-5.5 · Claude Sonnet 5 vs Kimi K3 · Claude Opus 4.8 vs Claude Sonnet 5

Full ranking: Best AI for code review · model pages: Claude Opus 4.8, Kimi K3