What problem does it solve? When writing or migrating Rust code in the Codex repository, developers face ambiguity about which path type to use—PathUri, LegacyAppPathString, AbsolutePathBuf, or plain String—across app-server, exec-server, and shared dependencies. Choosing incorrectly breaks backwards compatibility with existing clients or violates the ongoing URI migration. ## Core Features & Use Cases - Type selection rules by layer: Defines which path type belongs in app-server protocol types, exec-server protocol types, shared dependencies, and model-generated tool call arguments. - Migration requirements checklist: Lists constraints such as legacy native-path compatibility, file:// URIs in exec-server APIs, fail-closed versus fail-open error handling, and avoiding URI persistence in rollouts or databases. - Use Case: When adding a new field carrying a filesystem path to an app-server protocol struct, apply this guidance to use LegacyAppPathString at the boundary and convert to PathUri internally, keeping existing clients working. ## Quick Start Ask the agent to apply the path-types guidance when defining a new path-bearing type in the Codex repository, for example: "Add a working directory field to this app-server request type following the path-types rules."