For Flutter developers building sign-in, checkout and data-entry forms
Form LensA validator that returns '' means validate() is never true. Find what breaks your form, get its test, then rewrite it.
Paste the Dart of one form. Your browser checks where the Form lives, its GlobalKey (made once, final, bound), a validator on every field that returns a message or null, a submit that waits for validate(), and the basics - hidden passwords, the right keyboard, disposed controllers - then writes the widget test that submits the empty form. Then the review, and the rewritten form.
The form free
The scan free
What the scan found
The messages an empty submit shows
The skill's validated-form workflow
Your widget test and checklist free
The skill's feedback loop as a test: submit the empty form and expect every validator's message. It fails the day a validator goes missing or starts returning ''.
test/form_test.dart
The review metered
Pricing as soon as the session is ready...
Sign inThe reply could not be read. Here it is as it came back:
Caveats
Caveats
The page's check of this reply
Saved forms
How it works - and what it cannot see
The scan reads the Dart itself: comments and strings are masked, every call is matched to its closing bracket, its named arguments are read at their own depth, and each class and build method is located. It follows the skill: a Form in a StatefulWidget, one final GlobalKey<FormState> in the State class bound to the Form, a TextFormField with a validator for every input that returns a message or null, and a submit that acts only when validate() is true. It adds three basics the skill does not cover, labelled as the page's own: hidden passwords, the right keyboard, disposed controllers.
It cannot judge whether a validator's rule is right for its field, what happens after a valid submit, or focus and keyboard order - that is the review. The page re-scans the rewritten form, so a fix that did not land is flagged rather than trusted, and the free test tells you in CI.