path-types

$npx mdskill add openai/codex/path-types

Apply this guidance when defining new types. Change existing code only when explicitly requested, and keep edits minimal and proportional. Treat these rules as the target state of an ongoing migration; if compliance is difficult, ask the user how to proceed.

SKILL.md

.github/skills/path-typesView on GitHub ↗
---
name: path-types
description: Choose Rust types for operating system paths across the Codex repository. Use when defining new path-bearing types or explicitly migrating existing ones.
---

# Path Types

Apply this guidance when defining new types. Change existing code only when explicitly requested,
and keep edits minimal and proportional. Treat these rules as the target state of an ongoing
migration; if compliance is difficult, ask the user how to proceed.

- In app-server protocol types, use `LegacyAppPathString` for backwards compatibility during the URI
  migration. At the protocol boundary, convert it to `PathUri` and use `PathUri` internally. For
  host-local logic, such as some config values, use `AbsolutePathBuf` or `PathBuf` instead.
- In exec-server protocol types, use `PathUri`. Internally, use `PathUri` or `AbsolutePathBuf` as
  appropriate.
- In dependencies shared by both servers, use `PathUri` or separate APIs that decouple their use
  cases.
- Tool call arguments that the model is expected to generate should be deserialized as regular
  `String`s with feature-specific path handling code.

## Migration requirements

Keep these requirements in mind while migrating code to conform with the above guidelines:

* existing app-server clients keep sending and receiving legacy native-path strings
* app-server can retain and manipulate foreign-platform path URIs
* exec-server APIs use file:// URIs
* local-only operation must not change model-visible text
* model tool arguments may contain raw relative or absolute paths for any OS
* path reasoning must work before the related environment has come online
* URIs cannot explicitly encode the executor’s path convention or operating system
* users must not configure the environment’s OS/path convention explicitly
* URIs should not yet be stored in rollouts

It is OK if the conversion between paths and URIs is somewhat lossy as long as it will do the right
thing for real users.

Migrating to URIs should not add significant new failure modes. We will need to surface errors in
some places that were previously infallible but it should be kept to a minimum.

More from openai/codex

SkillDescription
babysit-prBabysit a GitHub pull request after creation by continuously polling review comments, CI checks/workflow runs, and mergeability state until the PR is merged/closed or user help is required. Diagnose failures, retry likely flaky failures up to 3 times, auto-fix/push branch-related issues when appropriate, and keep watching open PRs so fresh review feedback is surfaced promptly. Use when the user asks Codex to monitor a PR, watch CI, handle review comments, or keep an eye on failures and feedback on an open PR.
code-breaking-changesBreaking changes
code-reviewRun a final code review on a pull request
code-review-change-sizeChange size guidance (800 lines)
code-review-contextModel visible context
code-review-testingTest authoring guidance
codex-bugDiagnose GitHub bug reports in openai/codex. Use when given a GitHub issue URL from openai/codex and asked to decide next steps such as verifying against the repo, requesting more info, or explaining why it is not a bug; follow any additional user-provided instructions.
codex-issue-digestRun a GitHub issue digest for openai/codex by feature-area labels, all areas, and configurable time windows. Use when asked to summarize recent Codex bug reports or enhancement requests, especially for owner-specific labels such as tui, exec, app, or similar areas.
codex-pr-bodyUpdate the title and body of one or more pull requests.
imagegenGenerate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output should be a bitmap asset rather than repo-native code or vector. Do not use when the task is better handled by editing existing SVG/vector/code-native assets, extending an established icon or logo system, or building the visual directly in HTML/CSS/canvas.