Authored by Farukest. Fixes #385. Replaces startswith() with Path.is_relative_to() in _check_structure() symlink escape check — same fix pattern as skill_view() (PR #352). Prevents symlinks escaping to sibling directories with shared name prefixes.