The engine learns from my confirms and rejects, but right now I deliver those corrections by typing photo ids into a feedback command. That is fine for me and wrong for the workflow. The whole point of a monthly chore is that it should take a couple of minutes, and a command line is not where you want to be while glancing at thumbnails deciding which blurry kid is yours. So the next piece is a small SwiftUI review window for the Mac, and I started it as a throwaway prototype to feel the shape before committing to it.
A few things settled quickly once I had it on screen. The manifest the engine already writes decodes cleanly into the UI with no extra format, so the window is just a view onto a scan. A flat keep-or-not split hides the signal, so the grid groups photos into strong, moderate, borderline, and weak, which lets me start where the doubt is and skip the obvious ones. Each card needs exactly three states (pending, decided with an undo, and a greyed no-face), and saving has to be an explicit button rather than firing on every tap, because a fat-fingered reject I can't take back is worse than an extra click. It is still a prototype, not wired to the live engine yet, but it already answered the questions I built it to answer. The plan is to grow it into the actual front door: scan, glance, confirm, done.