[codex] Preserve skill descriptions outside model context#29006
Merged
charlesgong-openai merged 8 commits intoJun 19, 2026
Merged
[codex] Preserve skill descriptions outside model context#29006charlesgong-openai merged 8 commits into
charlesgong-openai merged 8 commits into
Conversation
xl-openai
approved these changes
Jun 19, 2026
charlesgong-openai
marked this pull request as ready for review
June 19, 2026 03:46
Contributor
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ec572aa759
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
charlesgong-openai
deleted the
dev/charlesgong/truncate-overlong-skill-descriptions
branch
June 19, 2026 19:47
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Skill descriptions are used in model-visible lists: the default available-skills catalog that supports implicit selection, and the on-demand
skills.listtool response used to discover orchestrator skills. A single overlong description should not consume a disproportionate share of either list.Enforcing the 1024-character limit while loading or migrating skills is the wrong boundary: it rejects otherwise-valid skills and discards metadata that non-model consumers and full skill reads may need. Skill metadata and
SKILL.mdcontent should remain intact; the cap belongs at model-visible list rendering boundaries.What changed
descriptionandmetadata.short-descriptionvalues when loading skills.source-command-*migration instead of skipping commands solely because their descriptions exceed 1024 characters.codex-core-skillsandcodex-skills-extension.skills.listresponse.....$skillinjection,skills.read, underlying metadata, and on-diskSKILL.mdfiles unchanged and full-fidelity.Implicit skill selection
Codex injects a bounded catalog containing each implicitly allowed skill's name, description, and source locator, together with instructions to use a skill when the task clearly matches its description. The model makes that semantic choice; after selecting a skill, it reads the full
SKILL.mdfrom its filesystem or provider resource. Explicit$skillmentions remain a separate path that injects the full skill instructions. For orchestrator skills,skills.listprovides bounded discovery metadata beforeskills.readreturns the full selected resource.Test plan
just test -p codex-core-skillsjust test -p codex-skills-extensionjust test -p codex-external-agent-migrationThe focused regressions verify that overlong metadata is preserved at load and migration boundaries while default available-skills rendering and
skills.listoutput produce the 1021-character prefix plus....