The Acceptance Test That Failed Before the Feature Existed

I almost built a feature this month with two requirements that quietly cancel each other the moment the market has a busy day, and the embarrassing part is that I wrote both requirements myself.

The setup: my stock scanner filters out most of what moves on a given day, because most of it deserves filtering. In late May, that filter hid eleven of twelve movers from a single Friday session. Hiding them is usually correct. Occasionally one of those hidden names keeps going the next day, and I wanted a way to not lose track of those.

When I asked my AI review panel to design a fix, I gave it two requirements without thinking hard about either. As I actually wrote them: “the watch list is capped at 8 names” and “no multi-day runner should ever escape the list.” Both sounded reasonable. Together they were arithmetic that cannot work: that same Friday had produced twelve movers, the eleven hidden ones plus the one that showed, all of them candidates for eight slots. Any cap plus any zero-miss guarantee fails on the first busy day, before a single line of ranking code gets written.

What interests me, looking back as the person who wrote both constraints, is that I held them side by side for weeks and never multiplied them together. They came from different places. The cap was a usability instinct: I have watched myself ignore long lists, so anything past eight names felt like building furniture I would walk around. The zero-miss demand was older and uglier, the memory of names I had been shown, dismissed, and then watched run for three days. Those two never got checked against each other until the review process did it for me, evaluating the proposed design against my written criteria and reporting back that the criteria contradicted each other.

The resolution was to figure out which problem I actually needed software for. Clutter is a software problem. The dismissed-runner regret is not, or at least no scanner was going to carry it for me, since deciding what deserves attention is the part of this work I never intended to delegate. So the shipped version has no cap and no guarantee. Everything that moved gets displayed, pre-dismissed, and I promote the rare name worth tracking with a single click. The flag lives in a small database table and follows the name from session to session until I clear it, which means the system’s whole job shrank to refusing to hide things and remembering my picks.

I’m Fillip Kosorukov, and I write about my building process, trading tools, and research on this site — the about page has the longer story of how a solo builder ends up with an AI review panel in the first place. This entry is here mostly as a note to my future self: when two requirements come from two different fears, do the multiplication before asking anyone to satisfy both.

— Fillip Kosorukov

Topics

Solo Founder Startup Resilience Behavioral Science Personal SEO SEO Knowledge Panel SetupLens Online Reputation LocalMention Schema Markup FixMyRecord Media & Blogs

About the Author

About the Author