Production Filter Checklist
Use this list to review any filter before using it in production. Every item should be answered with "yes" or "not applicable".
Scope
- [ ] Does the filter start with
type = "FamilySymbol"ortype = "FamilyInstance"— never the full dataset? - [ ] Is
values.isEditable = trueincluded if the rule targets loadable families? - [ ] Is
values.isInPlace = falseincluded if in-place families should be excluded? - [ ] Is
values.category.type = "Model"included to exclude annotation and internal categories? - [ ] Are problematic categories like
OST_DetailComponentsexplicitly excluded? - [ ] Does the category condition use
category.label(notcategory.name)?
Relationships
- [ ] Does category filtering happen on
FamilySymbol, not onFamilyInstance? - [ ] Are instances linked to their scope via
parent.id in $symbolIds? - [ ] Is the Family level included if naming conventions or editability must be checked?
Shared parameters
- [ ] Are shared parameters accessed by GUID key (
p_<guid>), not by name? - [ ] Is
$exists()used before reading a parameter that may not be bound? - [ ] Does the output return
nullexplicitly when a parameter is absent (notundefined)? - [ ] Is
hasValueincluded in the output when the validator needs to distinguish "no value" from "not bound"?
Output shape
- [ ] Does the output include
id,type, andname? - [ ] Does the output include only the fields needed for validation — nothing extra?
- [ ] Are field names in the output consistent with what the validator expects?
Data quality
- [ ] Does the filter not exclude elements based on the value being validated?
- [ ] Are missing values passed through to the validator (not filtered out silently)?
- [ ] Has the filter been tested against data that should produce failures?
Readability
- [ ] Are variable names descriptive (
$doorSymbolIds, not$ids)? - [ ] Are configuration values (GUIDs, category lists) defined at the top of the expression?
- [ ] Would another person understand the filter's intent without asking?