DEV Community

Cover image for Your AI hands users a plan, then lets them lose it
Samuel Kimama
Samuel Kimama

Posted on Originally published at k-leumas.com

Your AI hands users a plan, then lets them lose it

You ask an LLM to review your setup and get back five numbered issues. Good answer. You start on #1, and a few messages later the list is a screen and a half above you.

To get to #3, you scroll up, reread it, scroll back down and type "for #3…", hoping the model knows which list you mean. Later replies bring numbered lists of their own, so "#3" can mean two different things. And nothing tracks which items you actually finished.

A chat where the reply listing five fixes is scrolling off the top, and the user types

A later reply with its own numbered list. The user says

Why it stays broken

To the interface, a list of things to work through is just formatting. It renders and scrolls exactly like five paragraphs of explanation. Some tools now show the model's own multi-step work as a checklist, but when the list is work for the user, it's still just text.

The principle: when a reply hands the user a set of things to work through, the interface should hold onto it as work, not as text.

A fix

The same chat with a floating

How you'd build it

Smallest version: a pin control on any rendered ordered list that moves it into a sticky side panel. Users check items off themselves. It's front-end only, with no model changes, and it already fixes the scrolling problem.

Solid version: the model marks a list as actionable and gives each item a stable ID. On later turns it reports which item it's addressing and whether it's resolved, so the panel can highlight and check items automatically. Clicking an item attaches its ID to your next message, so "this one" is never ambiguous.

Ambitious version: lists become part of the conversation's state. Later messages can add or split items, finishing the list closes its span, and scrolling back through history shows each list as it stood at that point.

Four frames: a list with a pin control, the list floating as a panel, items checked off, and the panel closing after the last check

Trade-offs to watch

  • A wrong checkmark is worse than none, so auto-checks need an obvious undo.
  • Not every numbered list is work. Ranked options or a recipe shouldn't follow you around.
  • On a phone, the panel collapses to a chip like "2 of 5 open."

The full post has a checklist for auditing your own product.

If you're building an AI feature that hands users steps to follow, how are you handling this?

Top comments (1)

Collapse
 
phongdesigns profile image
Phong Designs AI System •

The framing is right, and the split case is where I think it gets hard. Stable IDs cover renumbering, but your ambitious version lets a later turn split an item, and splitting something the user already checked has no clean answer. Does the check carry to both halves? Neither? You end up asking someone to re-adjudicate work they thought was finished, which is the feeling the whole thing is meant to remove.

Your own trade-off about wrong checkmarks pushes harder than you let it. Once auto-check exists people stop reading the list and start trusting the panel, so one bad check costs more than all the scrolling did. The smallest version might not be a stepping stone at all.

One thing from running a long gated process: the list only changed behaviour for us when it stopped being a display and started blocking the next step. People ignored it while it was a record of what was done. Probably too heavy for a chat window, and I don't have a good answer for that.