What problem does it solve?
File path bugs in the Gum repository fail silently: comparisons return wrong results without exceptions, and case-only renames pass on Windows but break on macOS CI. This Skill documents the exact semantics of ToolsUtilities.FilePath so you avoid these traps.
Core Features & Use Cases
- Equality semantics: Explains that FilePath == compares the lowercased Standardized value while FullPath preserves casing, so case-only renames must be detected with ordinal FullPath comparison.
- Normalization rules: Clarifies that Standardized uses Path.DirectorySeparatorChar (not '/'), collapses '..' but not '.', and mismatches Directory.EnumerateFiles output unless both sides pass through Path.GetFullPath.
- Cross-platform moves: Documents why File.Move on a case-only rename throws on case-insensitive macOS volumes and requires a two-step move through a temp name.
- Use Case: You are renaming a screen file from Foo.cs to foo.cs and the rename is silently ignored on Windows while the macOS CI leg fails; this Skill tells you to compare FullPath ordinally and move via a temporary filename.
Quick Start
Ask the AI to review your Gum path-handling code for FilePath equality, Standardized separator, and case-only rename issues before committing.