fix

Do Not Do the Work. Build Me the Tool.

Jim Nielsen has spent years manually tagging icons on his iOS and macOS icon galleries as predominantly blue, orange, purple, and so on, so readers can browse a wall of same-colored icons. There are 2,000+ icons, and he knows he's missed a lot of tags. Finding the untagged orange ones by hand seemed like an arduous task.

The obvious move is to tell an LLM to go tag everything that's missing. He explicitly didn't want that: "I don't want to just say, 'Go tag everything that's missing' and blindly trust the output. I need to be able to make a decision as to whether I think a particular color is 'orange' or not."

So he asked for a tool instead.

The design

A page with a list of colors on the left. Click "orange" and you get two columns: icons already tagged orange, and icons that might be orange but aren't tagged. Select the ones you think are missing, hit Copy, and the IDs go back into the chat for the metadata to be updated.

The model's contribution is the interesting part. Nielsen assumed it would need to run every icon through a vision model. Instead: "Nah bro, just make a 'hue histogram.'"

Process each PNG, skip transparent pixels, skip low-saturation gray, convert the rest to HSV, and score how much of the remaining mass sits in the orange hue band — roughly 15–45 degrees. Rank the icons that don't already have colorId: orange. Write a standalone HTML page showing tagged versus maybe-missing, per color.

No model inference at runtime. A deterministic heuristic, cheap enough to run over the whole collection, explainable, and adjustable.

The slider is the interface

The little threshold slider turned out to matter more than the classification. Slide it down and more icons appear — some reveals he'd have missed. Slide it the other way and the false positives show up: "What are you thinking? I don't see that as 'yellow' at all!"

That's the right shape for a human-in-the-loop tool. Instead of forcing a binary decision, expose the parameter that controls the trade-off, and let the human move it. The model isn't asked to be right; it's asked to produce a ranked candidate list with a dial.

Why this works

Three things, and they generalize.

Cheap scoring plus visual review beats expensive inference. A hue histogram is a heuristic about pixels, not a model of "orange." It's wrong at the edges and fine in the middle, and the human only has to look at the ambiguous ones. The expensive part — judgment — stays with the person; the cheap part — scanning 2,000 files — goes to the computer.

The artifact is throwaway. Nielsen's point is that this doesn't need to be production-grade code. It's a one-off page that exists to produce metadata; once the metadata exists, the tool can be deleted. That removes a whole category of concerns — tests, maintenance, error handling — that would have made the project not worth starting.

The platform is enough. A single .html file with in-page JS, images from a CDN, opened via file://. No bundler, no server, no dependencies. He credits his elemental setup: HTML, CSS, a little JS, images on a server.

When it doesn't transfer

The pattern works because the human can see all the candidates, the decision is visual and fast, and a mistake costs a mistagged icon. Change any of those and the architecture changes.

If the decision is slow or requires expertise the reviewer doesn't have, a candidate list plus a slider doesn't help. If the cost of a mistake is high, you need verification rather than review. If the candidate set is too large to look at, you need sampling. So "build me a tool" is not a universal answer; it's the answer when the bottleneck is throughput and the judgment is cheap per item.

The takeaway

The line I'd steal is Nielsen's: "Don't do the work for me. Instead, help me make a custom-fit tool that facilitates me doing the work in the most empowering, correct way possible."

That's a different request from "do this task." It treats the model as a toolmaker and the human as the decision-maker, and it produces something useful even when the model's classification is imperfect — because the imperfect part is visible and adjustable.

Most of the value in these systems isn't the answer. It's the interface that makes your answer cheap to produce.

Source: Getting an LLM to Make Me a Tool for Enriching the Color Metadata in My Icon Collection — Jim Nielsen.

#ai#tooling#design#work