Perhaps this would be best a new thread; with a link to it from /to here. However my answer which involves lists of fields in macros to identify them is arguably needed in Best Practices.
@JenniferS perhaps the most practical way is to build a global macro naming each standard or system tiddlers;
The tiddlers hidden from the field editor have a visibility tiddler set to hide see advance search filter [all[shadows+tiddlers]prefix[$:/config/EditTemplateFields/Visibility/]]
\define core-fields() title tags text creator created modified modifier type draft.title draft.of revision bag
Then when trying to determine additional fields, those you added, you can do this; rule out core fieldnames
{{{ [all[current]fields[]] -[subfilter<core-fields>] }}}
alternatively you could make a global macro that lists your fields and do this; rule in your fields
{{{ [all[current]fields[]] +[subfilter<my-fields>] }}}
using the above filters in a list widget as needed.
Also with field handling have a closer look at the has operator because it allows you to test for a specific field empty or not.