HPAI · Finished editorial example

Reading-list app: completed build brief

User and problem

One person wants to track books to read on one device, without an account.

Core flow

Enter a title → add → mark complete if read → remove after confirmation.

Acceptance criteria

  1. Blank or spaces-only input adds nothing and shows a helpful message.
  2. A valid trimmed title creates one item and clears the field.
  3. Duplicate titles have different IDs; checking or removing one affects only that item.
  4. A refresh restores saved items when storage works.
  5. A failed save shows a persistent warning; the list still works in memory.
  6. Malformed saved data is not silently overwritten.
  7. Titles are shown as text, not interpreted as HTML.
  8. Labels, buttons and checkboxes work with the keyboard.

Storage decision

Use browser localStorage, key helppromptai-reading-list-v1. No cloud sync or permanent backup. Clearing browser data can remove the list.

Removal decision

Ask for confirmation. Cancel leaves the item in place.

Three milestones

  1. Labelled form, trimmed input, visible list and status messages.
  2. Unique IDs, independent completion/removal and keyboard checks.
  3. Validated JSON storage, visible save failures and reload checks.

Non-goals and stopping point

No accounts, payments, recommendations, backend, cross-device sync or publishing. Version 1 is complete when the eight criteria above are checked.