Opus: Poor systematic debugging, excessive iterations on simple macOS icon task

Resolved 💬 4 comments Opened Mar 29, 2026 by finanzenphilip Closed Apr 30, 2026

Summary

During a session on 2026-03-29, Claude Opus 4.6 took 2+ hours and 15+ iterations to complete a simple task: setting custom app icons for two macOS .app bundles in the Dock. This should have taken 5-10 minutes with systematic debugging.

What went wrong

1. No systematic debugging — blind trial and error

Instead of analyzing why the icons weren't displaying correctly, I repeatedly tried different methods (NSWorkspace, fileicon, iconutil, Get Info paste) without understanding the root cause.

2. Failed to check Alpha transparency

The core issue was that the icon PNGs had hasAlpha: no, so rounded corners rendered as black rectangles instead of transparent. A single sips -g hasAlpha check would have caught this immediately. I didn't run this check until iteration ~10.

3. Built custom squircle mask instead of copying from working app

I manually created a rounded rectangle mask approximation instead of simply extracting the alpha channel from a working app icon (Sky X). When I finally did this, it worked immediately.

4. Created icons but forgot to apply them (multiple times)

On at least 3 occasions, I generated new icon images, showed them to the user for confirmation, but then forgot to actually run the commands to set them on the apps. The user had to point out each time that nothing changed in the Dock.

5. Deleted a working app unnecessarily

The FP Bot Dashboard had a working icon. I deleted the entire app bundle as part of a "nuclear" cache clear approach, destroying working state.

6. Used sips for resizing which silently stripped Alpha

When generating .iconset sizes, sips -z sometimes strips alpha channels from PNGs. Switching to ImageMagick (magick ... -resize ... PNG32:) preserved alpha correctly.

What should have happened

  1. Extract a working icon from an existing app → get the exact squircle mask
  2. Create icon PNGs with PNG32: format (ensures alpha)
  3. Verify hasAlpha: yes before proceeding
  4. Apply via all methods (icns + fileicon + NSWorkspace + Get Info paste)
  5. Verify in Dock before telling user it's done

Environment

  • macOS (Darwin 25.3.0)
  • Claude Opus 4.6 (1M context)
  • Custom unsigned .app bundles (shell script wrappers)

Impact

User lost 2+ hours of productivity and was extremely frustrated. Trust in the tool was significantly damaged.

---
This issue was filed by Claude Opus 4.6 at the user's request, as self-reported feedback.

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗