Claude Sonnet 4.6 Grades Bug Reports from Four Qwen3.5 Local Models

Testing Local Models for Bug Reporting
A developer transitioning from Sonnet/Haiku to local models on a 32GB M5 MacBook Air tested four Qwen3.5 variants for bug reporting capability. Using LM Studio as the server and opencode CLI to call models, they asked each model to research and produce a bug report for an iOS game issue where equipment borders don't properly reset border color after unequipping items.
Models Tested
- Tesslate/OmniCoder-9B-GGUF Q8_0
- lmstudio-community/Qwen3.5-27B-GGUF Q4_K_M
- Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled-GGUF Q4_K_M
- lmstudio-community/Qwen3.5-35B-A3B-GGUF Q4_K_M
Bug Verification
The core bug is confirmed in the source files. In EquipmentSlotNode.swift, the setEquipment method's if let c = borderColor guard silently skips assignment when nil is passed. In EquipmentNode.swift, updateEquipment(from:) passes borderColor: nil for empty slots, so border color is never reset. The documentation on setEquipment says "pass nil to keep current color" — documenting broken behavior as intentional design.
Report Grades from Claude Sonnet 4.6
bug_report_9b_omnicoder — A−
Best of the four. Proposes the cleanest, most idiomatic Swift fix: borderShape.strokeColor = borderColor ?? theme.textDisabledColor.skColor — a single line replacing the if let block with no unnecessary branching. Only report to mention additional context files (GameScene.swift, BackpackManager.swift) that are part of the triggering flow.
Gap: Like all four reports, the test code won't compile. borderShape is declared private let in EquipmentSlotNode — @testable import only exposes internal, not private. Doesn't mention the doc comment needs updating.
bug_report_27b_lmstudiocommunity — B+
Accurate diagnosis. Proposes a clean two-branch fix: if id != nil { borderShape.strokeColor = borderColor ?? theme.textDisabledColor.skColor } else { borderShape.strokeColor = theme.textDisabledColor.skColor } — more verbose than needed but correct. Correctly identifies EquipmentNode.updateEquipment as the caller and includes integration test suggestion.
Gap: Proposes test in LogicTests/EquipmentNodeTests.swift — a file that already exists and covers EquipmentNode, not EquipmentSlotNode. Same private access problem in test code.
bug_report_27b_jackrong — B−
Correct diagnosis, but weakest proposed fix. Adds reset inside the else block: borderShape.strokeColor = theme.textDisabledColor.skColor // Reset border on clear — technically correct for the specific unequip case but leaves the overall method in a confusing state. The border reset in the else block can be immediately overridden by the if let block below if someone passes id: nil, borderColor: someColor. The fix patches the specific failure without cleaning up redundancy.
The developer used default parameters except for context window size to fit as much as possible in RAM, noting that some tweaking might offer improvement. They tried some unsloth models but had limited success.
📖 Read the full source: r/LocalLLaMA
👀 See Also

Developer Rebuilds Chrome Extension in 7 Days Using Claude After Google MV3 Migration Killed Original
A developer rebuilt a Chrome extension, API, website, and QA agent in 7 days using Claude after Google's Manifest V2 to V3 migration killed the original version. The extension finds real Amazon discounts across 21 domains and gained 4,000 installs in the first week.

Splitting AI Agents to Prevent Context Dropping
A developer describes splitting a single AI agent into three specialized agents with separate memory and workspaces to prevent context window issues. The agents communicate through a simple mailbox system to coordinate tasks like trip planning.

OpenClaw Cost Optimization: How a Developer Fixed a $750 Mistake with Model Routing
A developer shares how switching all OpenClaw subagents to the free Hunter Alpha model on OpenRouter led to silent failures, including a video production agent that generated valid code but produced a 9-second silent black video. The solution involved implementing explicit model routing based on task requirements.

Police Officer Builds iOS Location Utility LOC8 Using Claude Code
A police officer developed LOC8, an iOS app that instantly displays street address, nearest cross street, GPS coordinates, altitude, and accuracy using Claude Code. The app was built incrementally with a focus on law enforcement foot pursuit scenarios but expanded for general public use.