Step 1 of 5
Inventory and test every form
Find each form's actual behavior versus its intended effect.
List every form in the app (auth, create/edit, settings, search, contact - including in modals). For each: its intended effect, then actually submit it with valid data and record what happens (request fired? endpoint hit? data persisted after refresh? feedback shown?). Classify: WORKS / SILENT (nothing happens) / FAKE (feedback without persistence) / BROKEN (errors).
Expected after this step
A tested inventory of all forms with honest classifications.
Should not happen
- ✕Submit handlers that never call the API
- ✕Forms clearing on failure and losing user input
- ✕Validation only on the client, bypassable via direct calls
- ✕Success messages regardless of outcome
Verify before continuing
Do not move on until every check is true. The complete button stays locked until then.
Do not continue if…
- !Submit handlers that never call the API
- !Forms clearing on failure and losing user input
- !Validation only on the client, bypassable via direct calls
- !Success messages regardless of outcome
If the AI messes this up
Use this when the AI fakes progress or breaks the feature. It forces a real fix.
Forms were classified without submission tests. Submit each with valid data, watch the network tab, refresh, and reclassify based on evidence.