## What changed
- Add `SkillRootLoader` and its request/result types to `codex-skills` so skill roots can be loaded through a shared, object-safe interface.
- Add owner-managed snapshot cache handles that support reuse and use cache allocation identity for equality and hashing.
- Move `SkillError` into `codex-skills` and re-export the new loading API.
## Testing
- Verify snapshot sharing and identity semantics.
- Verify loaders can be used as shared trait objects.
GitOrigin-RevId: a26a8101008a6c862824a7346cdbe6d05f4bcc01