Summary
PropertySet.FromFile sets $ps.Name = $ps.FilePath.BaseName. $ps.FilePath is typed [string]; strings have no .BaseName property. PowerShell silently returns $null, so every PropertySet loaded from a file has Name = $null.
File
Gatekeeper/Classes/Property.ps1:139
Root Cause
$ps.FilePath = (Resolve-Path $FilePath).Path # [string]
$ps.Name = $ps.FilePath.BaseName # strings have no .BaseName → $null
Fix
$ps.Name = [System.IO.Path]::GetFileNameWithoutExtension($ps.FilePath)
Notes
- Good first issue — single-line fix
- Found by Jordan B., Sage Nakamura, Chip Torres, and Brent Tlackburn
Summary
PropertySet.FromFilesets$ps.Name = $ps.FilePath.BaseName.$ps.FilePathis typed[string]; strings have no.BaseNameproperty. PowerShell silently returns$null, so everyPropertySetloaded from a file hasName = $null.File
Gatekeeper/Classes/Property.ps1:139Root Cause
Fix
Notes