Skip to content

[codex] Preserve skill descriptions outside model context#29006

Merged
charlesgong-openai merged 8 commits into
mainfrom
dev/charlesgong/truncate-overlong-skill-descriptions
Jun 19, 2026
Merged

[codex] Preserve skill descriptions outside model context#29006
charlesgong-openai merged 8 commits into
mainfrom
dev/charlesgong/truncate-overlong-skill-descriptions

Conversation

@charlesgong-openai

@charlesgong-openai charlesgong-openai commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Why

Skill descriptions are used in model-visible lists: the default available-skills catalog that supports implicit selection, and the on-demand skills.list tool 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.md content should remain intact; the cap belongs at model-visible list rendering boundaries.

What changed

  • Preserve full description and metadata.short-description values when loading skills.
  • Preserve full external-agent command descriptions during source-command-* migration instead of skipping commands solely because their descriptions exceed 1024 characters.
  • Preserve full normalized orchestrator descriptions in the underlying skills catalog.
  • Cap each description at 1024 Unicode characters when rendering the default available-skills context in codex-core-skills and codex-skills-extension.
  • Apply the same cap when serializing descriptions in the model-visible skills.list response.
  • Render truncated descriptions as 1021 original characters plus ....
  • Leave explicit $skill injection, skills.read, underlying metadata, and on-disk SKILL.md files 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.md from its filesystem or provider resource. Explicit $skill mentions remain a separate path that injects the full skill instructions. For orchestrator skills, skills.list provides bounded discovery metadata before skills.read returns the full selected resource.

Test plan

  • just test -p codex-core-skills
  • just test -p codex-skills-extension
  • just test -p codex-external-agent-migration

The focused regressions verify that overlong metadata is preserved at load and migration boundaries while default available-skills rendering and skills.list output produce the 1021-character prefix plus ....

@charlesgong-openai charlesgong-openai changed the title [codex] Truncate overlong skill descriptions [codex] Preserve skill descriptions outside model context Jun 19, 2026
@charlesgong-openai
charlesgong-openai marked this pull request as ready for review June 19, 2026 03:46

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread codex-rs/ext/skills/src/provider/orchestrator.rs
Comment thread codex-rs/external-agent-migration/src/lib.rs Outdated
@charlesgong-openai
charlesgong-openai requested a review from a team as a code owner June 19, 2026 17:20
@charlesgong-openai
charlesgong-openai removed the request for review from a team June 19, 2026 18:09
@charlesgong-openai
charlesgong-openai merged commit 64bdeed into main Jun 19, 2026
31 checks passed
@charlesgong-openai
charlesgong-openai deleted the dev/charlesgong/truncate-overlong-skill-descriptions branch June 19, 2026 19:47
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 19, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants