Step 1 of 5
Inventory unpersisted state
Find everything the app forgets - the full list, not samples.
Audit the app and produce a table of every piece of state that should persist but currently does not: the data (e.g. tasks, profile edits, settings), where it lives now (useState/localStorage/nowhere), what user action creates or changes it, and whether refresh loses it. Test by performing each action then refreshing. Mark each row KEEP-LOCAL (genuinely UI-only) or PERSIST.
Expected after this step
A verified inventory of state with PERSIST/KEEP-LOCAL decisions.
Should not happen
- ✕Todo/items arrays living only in useState
- ✕Saves that update state but never call an API
- ✕Reads that never fetch, showing stale hardcoded data
- ✕Missing loading states causing flash-of-empty bugs
Verify before continuing
Do not move on until every check is true. The complete button stays locked until then.
Do not continue if…
- !Todo/items arrays living only in useState
- !Saves that update state but never call an API
- !Reads that never fetch, showing stale hardcoded data
- !Missing loading states causing flash-of-empty bugs
If the AI messes this up
Use this when the AI fakes progress or breaks the feature. It forces a real fix.
The inventory is partial. Walk every screen, perform every create/edit action, refresh, and add every piece of lost data to the table.