A good acceptance criterion is not a description of the feature. It is the sentence a person who has never met you would read and then say, with confidence, "yes, this is done" or "no, this is not done." If you cannot write that sentence, you do not have a ticket. You have a topic.
The most common failure mode is the AC that describes what the team will do, rather than the observable state of the world when the work is finished. "Add a filters panel" is a topic. "A user can filter the list by status, assignee, and date, and the filter state survives a page reload" is an acceptance criterion.
Pyloq insists on the second form because the second form is the only one that survives contact with QA. The first form is a license to argue later about what "done" meant. The contract at creation time is what saves the conversation at delivery time.